Avro C++
Classes
avro::concepts Namespace Reference

The concept classes are used to simplify NodeImpl. More...

Classes

struct  NoAttribute
struct  SingleAttribute
struct  MultiAttribute
struct  NameIndexConcept
struct  NameIndexConcept< MultiAttribute< std::string > >

Detailed Description

The concept classes are used to simplify NodeImpl.

Since different types of avro types carry different attributes, such as names, or field names for record members. Using the concept class of NoAttribute vs Attribute, the NodeImpl object can enable/disable the attribute, but the code is the same in either case.

Furthermore, attributes may have different types, for example, most attributes are strings, but fixed types have a size attribute, which is integer.

Since compound types are composed of other types, the leaf attribute concepts extend a NodeImpl to include leaf nodes, and attributes for leaf nodes, which are used to build parse trees.