rapidyaml  0.16.0
parseandemitYAML,anddoitfast
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 More...
 
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

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
mark container with single-line flow style < - seqs as <
Definition: node_type.hpp:56
void set_map()
Definition: node.hpp:1257
void write ( ryml::NodeRef &  n,
Outer const &  outer 
)

Definition at line 4110 of file quickstart.cpp.

4111 {
4112  n.set_seq(ryml::BLOCK);
4113  n[0].set_serialized(outer.inner[0]);
4114  n[1].set_serialized(outer.inner[1]);
4115 }
mark container with block style < - seqs as <
Definition: node_type.hpp:136
void set_serialized(T const &v)
serialize a variable to this node.
Definition: node.hpp:1375
void set_seq()
Definition: node.hpp:1254
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:161
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 }
A lightweight truthy type, used to enable reporting the offending node when a deserializing error hap...
Definition: common.hpp:161
Inner inner[2]