ECSTASY
All in the name
Loading...
Searching...
No Matches
TomlNodeFactory.hpp
Go to the documentation of this file.
1
11
12#ifndef UTIL_SERIALIZATION_TOML_TOMLFACTORY_HPP_
13#define UTIL_SERIALIZATION_TOML_TOMLFACTORY_HPP_
14
17#include <toml++/toml.h>
18
19namespace util::serialization
20{
28 public:
37 [[nodiscard]] static TomlNodeFactory &get() noexcept;
38
49 [[nodiscard]] NodePtr createFromToml(const toml::node &node);
50
52 [[nodiscard]] NodePtr create(INode::Type type) override final;
53
55 [[nodiscard]] NodePtr create(const INode &node) override final;
56
58 [[nodiscard]] NodePtr createObject(const IObjectNode &object) override final;
59
61 [[nodiscard]] NodePtr createArray(const IArrayNode &array) override final;
62
64 [[nodiscard]] NodePtr create(std::string_view string) override final;
65
67 [[nodiscard]] NodePtr create(int64_t integer) override final;
68
70 [[nodiscard]] NodePtr create(double floatingPoint) override final;
71
73 [[nodiscard]] NodePtr create(bool boolean) override final;
74
76 [[nodiscard]] NodePtr create(INode::Date date) override final;
77
79 [[nodiscard]] NodePtr create(INode::Time time) override final;
80
82 [[nodiscard]] NodePtr create(INode::DateTime dateTime) override final;
83
84 private:
91 TomlNodeFactory() = default;
92 };
93} // namespace util::serialization
94
95#endif /* !UTIL_SERIALIZATION_TOML_TOMLFACTORY_HPP_ */
Serialization node interface.
Node factory to hide underlying format.
Node factory to hide underlying format.
Serialization node.
Definition INode.hpp:32
std::chrono::high_resolution_clock::time_point DateTime
Type::DateTime underlying type.
Definition INode.hpp:64
Type
Available node types.
Definition INode.hpp:42
Toml Node factory singleton.
static TomlNodeFactory & get() noexcept
Retrieve the TomlNodeFactory singleton instance.
NodePtr createFromToml(const toml::node &node)
Create a node from a toml::node object.
NodePtr createArray(const IArrayNode &array) override final
Construct a INode::Type::Array node.
NodePtr createObject(const IObjectNode &object) override final
Construct a INode::Type::Object node.
NodePtr create(INode::Type type) override final
Construct an empty node from its type.