1#ifndef SOURCEMETA_BLAZE_BINPACK_DECODER_H_
2#define SOURCEMETA_BLAZE_BINPACK_DECODER_H_
4#ifndef SOURCEMETA_BLAZE_BINPACK_EXPORT
5#include <sourcemeta/blaze/binpack_export.h>
8#include <sourcemeta/blaze/binpack_encoding.h>
10#include <sourcemeta/core/io.h>
11#include <sourcemeta/core/json.h>
15namespace sourcemeta::blaze {
18class SOURCEMETA_BLAZE_BINPACK_EXPORT BinPackDecoder
19 :
private sourcemeta::core::BinaryReader {
21 using Stream = std::basic_istream<sourcemeta::core::JSON::Char,
22 sourcemeta::core::JSON::CharTraits>;
23 BinPackDecoder(Stream &input);
31#define DECLARE_ENCODING(name) \
32 auto name(const name &) -> sourcemeta::core::JSON;
73#undef DECLARE_ENCODING
std::variant< BOUNDED_MULTIPLE_8BITS_ENUM_FIXED, FLOOR_MULTIPLE_ENUM_VARINT, ROOF_MULTIPLE_MIRROR_ENUM_VARINT, ARBITRARY_MULTIPLE_ZIGZAG_VARINT, DOUBLE_VARINT_TUPLE, BYTE_CHOICE_INDEX, LARGE_CHOICE_INDEX, TOP_LEVEL_BYTE_CHOICE_INDEX, CONST_NONE, ANY_PACKED_TYPE_TAG_BYTE_PREFIX, UTF8_STRING_NO_LENGTH, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED, BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED, RFC3339_DATE_INTEGER_TRIPLET, PREFIX_VARINT_LENGTH_STRING_SHARED, FIXED_TYPED_ARRAY, BOUNDED_8BITS_TYPED_ARRAY, FLOOR_TYPED_ARRAY, ROOF_TYPED_ARRAY, FIXED_TYPED_ARBITRARY_OBJECT, VARINT_TYPED_ARBITRARY_OBJECT, NUMBER_VARINT_TUPLE > BinPackEncoding
Definition binpack_encoding.h:49