rapidyaml 0.16.0
parse and emit YAML, and do it fast
Loading...
Searching...
No Matches
Serialize container types (brief)

Serialization definitions used in sample_user_container_types_brief(). More...

Classes

struct  Inner
struct  Outer
 serializes as a map More...

Functions

void write (ryml::NodeRef &n, Inner const &inner)
 serializes as a seq
void write (ryml::NodeRef &n, Outer const &outer)
ryml::ReadResult read (ryml::ConstNodeRef const &n, Inner *inner)
ryml::ReadResult read (ryml::ConstNodeRef const &n, Outer *val)

Detailed Description

Serialization definitions used in sample_user_container_types_brief().

Function Documentation

◆ write() [1/2]

void write ( ryml::NodeRef & n,
Inner const & inner )

serializes as a seq

Definition at line 4104 of file quickstart.cpp.

4105{
4107 n["foo"].set_serialized(inner.foo);
4108 n["bar"].set_serialized(inner.bar);
4109}
void set_serialized(T const &v)
serialize a variable to this node.
Definition node.hpp:1375
@ FLOW_SL
mark container with single-line flow style
Definition node_type.hpp:56

Referenced by c4::yml::Tree::save(), c4::yml::Tree::save(), c4::yml::Tree::set_serialized(), and c4::yml::Tree::set_serialized().

◆ write() [2/2]

void write ( ryml::NodeRef & n,
Outer const & outer )

Definition at line 4110 of file quickstart.cpp.

4111{
4113 n[0].set_serialized(outer.inner[0]);
4114 n[1].set_serialized(outer.inner[1]);
4115}
@ BLOCK
mark container with block style

◆ read() [1/2]

ryml::ReadResult read ( ryml::ConstNodeRef const & n,
Inner * inner )

Definition at line 4118 of file quickstart.cpp.

4119{
4120 ryml::ReadResult r(n.is_map(), n.id());
4121 if(r) r = n.deserialize_child("foo", &inner->foo); // O(N)
4122 if(r) r = n.deserialize_child("bar", &inner->bar);
4123 return r;
4124}
A lightweight truthy type, used to enable reporting the offending node when a deserializing error hap...
Definition common.hpp:162

Referenced by c4::yml::detail::RoNodeMethods< NodeRef, ConstNodeRef >::deserialize(), c4::yml::detail::RoNodeMethods< NodeRef, ConstNodeRef >::deserialize(), c4::yml::Tree::deserialize(), c4::yml::Tree::deserialize(), c4::yml::detail::RoNodeMethods< NodeRef, ConstNodeRef >::load(), c4::yml::detail::RoNodeMethods< NodeRef, ConstNodeRef >::load(), c4::yml::Tree::load(), and c4::yml::Tree::load().

◆ read() [2/2]

ryml::ReadResult read ( ryml::ConstNodeRef const & n,
Outer * val )

Definition at line 4125 of file quickstart.cpp.

4126{
4127 ryml::ReadResult r(n.is_seq(), n.id());
4128 // size is fixed, so we do this with explicit indices.
4129 if(r) r = n.deserialize_child(0, &val->inner[0]); // O(N)
4130 if(r) r = n.deserialize_child(1, &val->inner[1]);
4131 return r;
4132}
Inner inner[2]