struct mrpt::containers::yaml::node_t
#include <mrpt/containers/yaml.h> struct node_t { // fields std::variant<std::monostate, sequence_t, map_t, scalar_t> d; comments_t comments; bool printInShortFormat = false; mark_t marks; // construction node_t(); template < typename T, typename = std::enable_if_t<!std::is_constructible_v<std::initializer_list<map_t::value_type>, T>>, typename = std::enable_if_t<!std::is_constructible_v<std::initializer_list<sequence_t::value_type>, T>> > node_t(const T& scalar); node_t(const char* str); node_t(std::initializer_list<map_t::value_type> init); node_t(std::initializer_list<sequence_t::value_type> init); // methods bool isNullNode() const; bool isScalar() const; bool isSequence() const; bool isMap() const; std::string typeName() const; sequence_t& asSequence(); const sequence_t& asSequence() const; map_t& asMap(); const map_t& asMap() const; scalar_t& asScalar(); const scalar_t& asScalar() const; size_t size() const; template <typename T> T as() const; const std::string_view internalAsStr() const; bool hasComment() const; bool hasComment(CommentPosition pos) const; const std::string& comment() const; const std::string& comment(CommentPosition pos) const; };
Fields
std::variant<std::monostate, sequence_t, map_t, scalar_t> d
Node data.
comments_t comments
Optional comment block.
bool printInShortFormat = false
Optional flag to print collections in short form (e.g.
[A,B] for sequences) (New in MRPT 2.1.8)
mark_t marks
Positioning information about the placement of the element in the original input file/stream, i.e.
line and column number (New in MRPT 2.5.0)
Construction
node_t(const char* str)
Specialization for literals.
Methods
std::string typeName() const
Returns: “null”, “sequence”, “map”, “scalar(<TYPE>)”.
sequence_t& asSequence()
Use: for (auto &kv: n.asSequence()) {...}
Parameters:
std::exception |
If called on a non-sequence node. |
map_t& asMap()
Use: for (auto &kv: n.asMap()) {...}
Parameters:
std::exception |
If called on a non-map node. |
scalar_t& asScalar()
Parameters:
std::exception |
If called on a non-scalar node. |
size_t size() const
Returns 1 for null or scalar nodes, the number of children for sequence or map nodes.
template <typename T> T as() const
Returns a copy of the existing value of the given type, or tries to convert it between easily-compatible types (e.g.
double<->int, string<->int).
Parameters:
std::exception |
If the contained type does not match and there is no obvious conversion. |