jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
122 lines (121 loc) • 3.76 kB
JSON
{
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"rules": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"scope-case": {
"type": "array",
"encoding": "BOUNDED_8BITS_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 3,
"maximum": 3,
"prefixEncodings": [
{
"type": "integer",
"encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
"options": {
"minimum": 0,
"multiplier": 1
}
},
{
"type": "enum",
"encoding": "BOUNDED_CHOICE_INDEX",
"options": {
"choices": [
"always",
"never"
]
}
},
{
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
}
],
"encoding": {
"type": "any",
"encoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
"options": {}
}
}
},
"subject-case": {
"type": "array",
"encoding": "BOUNDED_8BITS_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 3,
"maximum": 3,
"prefixEncodings": [
{
"type": "integer",
"encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
"options": {
"minimum": 0,
"multiplier": 1
}
},
{
"type": "enum",
"encoding": "BOUNDED_CHOICE_INDEX",
"options": {
"choices": [
"always",
"never"
]
}
},
{
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
}
],
"encoding": {
"type": "any",
"encoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
"options": {}
}
}
}
},
"requiredProperties": [
"scope-case",
"subject-case"
],
"booleanRequiredProperties": []
}
}
},
"requiredProperties": [
"rules"
],
"booleanRequiredProperties": []
}
}