JSON BinPack  0.0.1
A space-efficient open-source binary JSON serialization format based on JSON Schema with both schema-driven and schema-less support.
sourcemeta::jsonbinpack::FIXED_TYPED_ARBITRARY_OBJECT Struct Reference

The encoding consists of each pair encoded as the key followed by the value according to key_encoding and encoding. The order in which pairs are encoded is undefined. More...

#include <runtime_plan.h>

Public Attributes

const std::uint64_t size
 The object size.
 
const SinglePlan key_encoding
 Key encoding.
 
const SinglePlan encoding
 Value encoding.
 

Detailed Description

The encoding consists of each pair encoded as the key followed by the value according to key_encoding and encoding. The order in which pairs are encoded is undefined.

Options

Option Type Description
size uint The object size
keyEncoding encoding Key encoding
encoding encoding Value encoding

Conditions

Condition Description
len(value) == size The input object must have the declared amount of entries

Examples

Given the array { "foo": 1, "bar": 2 } where keyEncoding corresponds to UTF8_STRING_NO_LENGTH (size 3) and encoding corresponds to BOUNDED_MULTIPLE_8BITS_ENUM_FIXED (minimum 0, maximum 10, multiplier 1), the encoding results in:

+------+------+------+------+------+------+------+------+
| 0x66 | 0x6f | 0x6f | 0x01 | 0x62 | 0x61 | 0x72 | 0x02 |
+------+------+------+------+------+------+------+------+
f o o 1 b a r 2

Or:

+------+------+------+------+------+------+------+------+
| 0x62 | 0x61 | 0x72 | 0x02 | 0x66 | 0x6f | 0x6f | 0x01 |
+------+------+------+------+------+------+------+------+
b a r 2 f o o 1