19 #ifndef avro_AvroParse_hh__
20 #define avro_AvroParse_hh__
24 #include "ResolvingReader.hh"
35 template<
typename Reader,
typename T>
41 void parse(ResolvingReader &p, T &val) {
42 translatingParse(p, val, is_serializable<T>());
47 template<
typename Reader,
typename T>
49 static_assert(
sizeof(T) == 0,
"Not a valid type to parse");
52 template<
typename Reader,
typename T>
53 void translatingParse(Reader &p, T &val,
const std::false_type &) {
54 static_assert(
sizeof(T) == 0,
"Not a valid type to parse");
61 template<
typename Reader,
typename T>
66 template<
typename Reader>
67 void parse(Reader &p, std::vector<uint8_t> &val,
const std::true_type &) {
72 void translatingParse(ResolvingReader &p, T &val,
const std::true_type &) {
This header contains type traits and similar utilities used by the library.
A bunch of templates and specializations for encoding and decoding specific types.
Definition: AvroParse.hh:30
void parse(Reader &p, T &val)
The main parse entry point function.
Definition: AvroParse.hh:36
Define an is_serializable trait for types we can serialize natively.
Definition: AvroTraits.hh:38