|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
deserialization of CBOR, MessagePack, and UBJSON values More...
#include <json.hpp>
Public Member Functions | |
| binary_reader (InputAdapterType &&adapter, const input_format_t format=input_format_t::json) noexcept | |
| create a binary reader | |
| binary_reader (const binary_reader &)=delete | |
| binary_reader (binary_reader &&)=default | |
| binary_reader & | operator= (const binary_reader &)=delete |
| binary_reader & | operator= (binary_reader &&)=default |
| ~binary_reader ()=default | |
| bool | sax_parse (const input_format_t format, json_sax_t *sax_, const bool strict=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error) |
Private Types | |
| using | number_integer_t = typename BasicJsonType::number_integer_t |
| using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
| using | number_float_t = typename BasicJsonType::number_float_t |
| using | string_t = typename BasicJsonType::string_t |
| using | binary_t = typename BasicJsonType::binary_t |
| using | json_sax_t = SAX |
| using | char_type = typename InputAdapterType::char_type |
| using | char_int_type = typename char_traits<char_type>::int_type |
| using | bjd_type = std::pair<char_int_type, string_t> |
Private Member Functions | |
| bool | parse_bson_internal () |
| Reads in a BSON-object and passes it to the SAX-parser. | |
| template<typename NumberType> | |
| bool | get_bson_string (const NumberType len, string_t &result) |
| Parses a C-style string from the BSON input. | |
| template<typename NumberType> | |
| bool | get_bson_binary (const NumberType len, binary_t &result) |
| Parses a byte array input of length len from the BSON input. | |
| bool | parse_bson_element_internal (const char_int_type element_type, const std::size_t element_type_parse_position) |
| Read a BSON document element of the given element_type. | |
| bool | parse_bson_element_list (const bool is_array) |
| Read a BSON element list (as specified in the BSON-spec). | |
| bool | parse_bson_array () |
| Reads an array from the BSON input and passes it to the SAX-parser. | |
| **bool | parse_cbor_internal (const bool get_char, const cbor_tag_handler_t tag_handler) |
| bool | get_cbor_string (string_t &result) |
| reads a CBOR string | |
| bool | get_cbor_binary (binary_t &result) |
| reads a CBOR byte array | |
| bool | get_cbor_array (const std::size_t len, const cbor_tag_handler_t tag_handler) |
| bool | get_cbor_object (const std::size_t len, const cbor_tag_handler_t tag_handler) |
| **bool | parse_msgpack_internal () |
| bool | get_msgpack_string (string_t &result) |
| reads a MessagePack string | |
| bool | get_msgpack_binary (binary_t &result) |
| reads a MessagePack byte array | |
| bool | get_msgpack_array (const std::size_t len) |
| bool | get_msgpack_object (const std::size_t len) |
| **bool | parse_ubjson_internal (const bool get_char=true) |
| bool | get_ubjson_string (string_t &result, const bool get_char=true) |
| reads a UBJSON string | |
| bool | get_ubjson_ndarray_size (std::vector< size_t > &dim) |
| bool | get_ubjson_size_value (std::size_t &result, bool &is_ndarray, char_int_type prefix=0) |
| bool | get_ubjson_size_type (std::pair< std::size_t, char_int_type > &result, bool inside_ndarray=false) |
| determine the type and size for a container | |
| bool | get_ubjson_value (const char_int_type prefix) |
| bool | get_ubjson_array () |
| bool | get_ubjson_object () |
| bool | get_ubjson_high_precision_number () |
| **char_int_type | get () |
| get next character from the input | |
| char_int_type | get_ignore_noop () |
| template<typename NumberType, bool InputIsLittleEndian = false> | |
| bool | get_number (const input_format_t format, NumberType &result) |
| template<typename NumberType> | |
| bool | get_string (const input_format_t format, const NumberType len, string_t &result) |
| create a string by reading characters from the input | |
| template<typename NumberType> | |
| bool | get_binary (const input_format_t format, const NumberType len, binary_t &result) |
| create a byte array by reading bytes from the input | |
| bool | unexpect_eof (const input_format_t format, const char *context) const |
| std::string | get_token_string () const |
| std::string | exception_message (const input_format_t format, const std::string &detail, const std::string &context) const |
Private Attributes | |
| *input adapter InputAdapterType | ia |
| *the current character char_int_type | current = char_traits<char_type>::eof() |
| *the number of characters read std::size_t | chars_read = 0 |
| *whether we can assume little endianness const bool | is_little_endian = little_endianness() |
| *input format const input_format_t | input_format = input_format_t::json |
| *the SAX parser json_sax_t * | sax = nullptr |
| JSON_PRIVATE_UNLESS_TESTED | : const decltype(JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_) bjd_optimized_type_markers = JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_ |
| const decltype(JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_) | bjd_types_map |
Static Private Attributes | |
| static JSON_INLINE_VARIABLE constexpr std::size_t | npos = static_cast<std::size_t>(-1) |
deserialization of CBOR, MessagePack, and UBJSON values
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineexplicitnoexcept |
create a binary reader
| [in] | adapter | input adapter to read from |
Definition at line 9228 of file json.hpp.
References format(), ia, input_format, and detail::json.
Referenced by binary_reader(), binary_reader(), operator=(), and operator=().
|
delete |
References binary_reader().
|
default |
References binary_reader().
|
default |
|
inlineprivate |
| [in] | format | the current format |
| [in] | detail | a detailed error message |
| [in] | context | further context information |
Definition at line 12058 of file json.hpp.
References detail::bjdata, detail::bson, detail::cbor, detail::concat(), format(), detail::json, JSON_ASSERT, detail::msgpack, and detail::ubjson.
Referenced by get_bson_binary(), get_bson_string(), get_cbor_binary(), get_cbor_string(), get_msgpack_string(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), parse_cbor_internal(), parse_msgpack_internal(), sax_parse(), and unexpect_eof().
|
inlineprivate |
get next character from the input
This function provides the interface to the used input adapter. It does not throw in case the input reached EOF, but returns a -'ve valued char_traits<char_type>::eof() in that case.
Definition at line 11896 of file json.hpp.
References chars_read, current, and ia.
Referenced by get_binary(), get_bson_string(), get_cbor_array(), get_cbor_binary(), get_cbor_object(), get_cbor_string(), get_ignore_noop(), get_msgpack_object(), get_number(), get_string(), get_ubjson_high_precision_number(), get_ubjson_size_type(), get_ubjson_string(), get_ubjson_value(), parse_bson_element_internal(), parse_bson_element_list(), parse_cbor_internal(), parse_msgpack_internal(), and sax_parse().
|
inlineprivate |
create a byte array by reading bytes from the input
| NumberType | the type of the number |
| [in] | format | the current format (for diagnostics) |
| [in] | len | number of bytes to read |
| [out] | result | byte array created by reading len bytes |
Definition at line 12008 of file json.hpp.
References current, format(), get(), JSON_HEDLEY_UNLIKELY, result, success, and unexpect_eof().
Referenced by get_bson_binary(), get_cbor_binary(), and get_msgpack_binary().
|
inlineprivate |
Parses a byte array input of length len from the BSON input.
| [in] | len | The length of the byte array to be read. |
| [in,out] | result | A reference to the binary variable where the read array is to be stored. |
| NumberType | The type of the length len |
Definition at line 9389 of file json.hpp.
References detail::bson, chars_read, detail::concat(), detail::parse_error::create(), exception_message(), get_binary(), get_number(), get_token_string(), JSON_HEDLEY_UNLIKELY, result, and sax.
Referenced by parse_bson_element_internal().
|
inlineprivate |
Parses a C-style string from the BSON input.
| [in,out] | result | A reference to the string variable where the read string is to be stored. |
/*!
Parses a zero-terminated string of length len from the BSON input.
| [in] | len | The length (including the zero-byte at the end) of the string to be read. |
| [in,out] | result | A reference to the string variable where the read string is to be stored. |
| NumberType | The type of the length len |
Definition at line 9367 of file json.hpp.
References detail::bson, chars_read, detail::concat(), detail::parse_error::create(), exception_message(), get(), get_string(), get_token_string(), JSON_HEDLEY_UNLIKELY, result, and sax.
Referenced by parse_bson_element_internal().
|
inlineprivate |
| [in] | len | the length of the array or static_cast<std::size_t>(-1) for an array of indefinite size |
| [in] | tag_handler | how CBOR tags should be treated |
Definition at line 10246 of file json.hpp.
References get(), JSON_HEDLEY_UNLIKELY, parse_cbor_internal(), and sax.
Referenced by parse_cbor_internal().
|
inlineprivate |
reads a CBOR byte array
This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into the byte array. Additionally, CBOR's byte arrays with indefinite lengths are supported.
| [out] | result | created byte array |
Definition at line 10151 of file json.hpp.
References detail::cbor, chars_read, chunk, detail::concat(), detail::parse_error::create(), current, exception_message(), get(), get_binary(), get_cbor_binary(), get_number(), get_token_string(), JSON_HEDLEY_UNLIKELY, result, sax, and unexpect_eof().
Referenced by get_cbor_binary(), and parse_cbor_internal().
|
inlineprivate |
| [in] | len | the length of the object or static_cast<std::size_t>(-1) for an object of indefinite size |
| [in] | tag_handler | how CBOR tags should be treated |
Definition at line 10284 of file json.hpp.
References get(), get_cbor_string(), JSON_HEDLEY_UNLIKELY, detail::key, parse_cbor_internal(), and sax.
Referenced by parse_cbor_internal().
|
inlineprivate |
reads a CBOR string
This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string. Additionally, CBOR's strings with indefinite lengths are supported.
| [out] | result | created string |
Definition at line 10055 of file json.hpp.
References detail::cbor, chars_read, chunk, detail::concat(), detail::parse_error::create(), current, exception_message(), get(), get_cbor_string(), get_number(), get_string(), get_token_string(), JSON_HEDLEY_UNLIKELY, result, sax, and unexpect_eof().
Referenced by get_cbor_object(), get_cbor_string(), and parse_cbor_internal().
|
inlineprivate |
Definition at line 11905 of file json.hpp.
References current, and get().
Referenced by get_ubjson_array(), get_ubjson_ndarray_size(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), parse_ubjson_internal(), and sax_parse().
|
inlineprivate |
| [in] | len | the length of the array |
Definition at line 10915 of file json.hpp.
References JSON_HEDLEY_UNLIKELY, parse_msgpack_internal(), and sax.
Referenced by parse_msgpack_internal().
|
inlineprivate |
reads a MessagePack byte array
This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into a byte array.
| [out] | result | created byte array |
Definition at line 10804 of file json.hpp.
References current, get_binary(), get_number(), detail::msgpack, and result.
Referenced by parse_msgpack_internal().
|
inlineprivate |
| [in] | len | the length of the object |
Definition at line 10937 of file json.hpp.
References get(), get_msgpack_string(), JSON_HEDLEY_UNLIKELY, detail::key, parse_msgpack_internal(), and sax.
Referenced by parse_msgpack_internal().
|
inlineprivate |
reads a MessagePack string
This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string.
| [out] | result | created string |
Definition at line 10721 of file json.hpp.
References chars_read, detail::concat(), detail::parse_error::create(), current, exception_message(), get_number(), get_string(), get_token_string(), JSON_HEDLEY_UNLIKELY, detail::msgpack, result, sax, and unexpect_eof().
Referenced by get_msgpack_object(), and parse_msgpack_internal().
|
inlineprivate |
Definition at line 11932 of file json.hpp.
References detail::bjdata, current, format(), get(), is_little_endian, JSON_HEDLEY_UNLIKELY, result, and unexpect_eof().
Referenced by get_bson_binary(), get_cbor_binary(), get_cbor_string(), get_msgpack_binary(), get_msgpack_string(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), parse_bson_array(), parse_bson_element_internal(), parse_bson_internal(), parse_cbor_internal(), and parse_msgpack_internal().
|
inlineprivate |
create a string by reading characters from the input
| NumberType | the type of the number |
| [in] | format | the current format (for diagnostics) |
| [in] | len | number of characters to read |
| [out] | result | string created by reading len bytes |
Definition at line 11975 of file json.hpp.
References current, format(), get(), JSON_HEDLEY_UNLIKELY, result, success, and unexpect_eof().
Referenced by get_bson_string(), get_cbor_string(), get_msgpack_string(), and get_ubjson_string().
|
inlineprivate |
Definition at line 12045 of file json.hpp.
References current.
Referenced by get_bson_binary(), get_bson_string(), get_cbor_binary(), get_cbor_string(), get_msgpack_string(), get_ubjson_array(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), parse_cbor_internal(), parse_msgpack_internal(), and sax_parse().
|
inlineprivate |
Definition at line 11626 of file json.hpp.
References bjd_types_map, detail::bjdata, chars_read, detail::parse_error::create(), current, exception_message(), get_ignore_noop(), get_token_string(), get_ubjson_size_type(), get_ubjson_value(), input_format, JSON_HEDLEY_UNLIKELY, detail::key, npos, p, parse_ubjson_internal(), and sax.
Referenced by get_ubjson_value().
|
inlineprivate |
Definition at line 11817 of file json.hpp.
References chars_read, detail::concat(), detail::parse_error::create(), current, exception_message(), get(), get_ubjson_size_value(), detail::input_adapter(), input_format, JSON_HEDLEY_UNLIKELY, res, sax, and unexpect_eof().
Referenced by get_ubjson_value().
|
inlineprivate |
| [out] | dim | an integer vector storing the ND array dimensions |
Definition at line 11088 of file json.hpp.
References current, get_ignore_noop(), get_ubjson_size_type(), get_ubjson_size_value(), JSON_HEDLEY_UNLIKELY, and npos.
Referenced by get_ubjson_size_value().
|
inlineprivate |
Definition at line 11734 of file json.hpp.
References detail::bjdata, chars_read, detail::parse_error::create(), current, exception_message(), get_ignore_noop(), get_token_string(), get_ubjson_size_type(), get_ubjson_string(), get_ubjson_value(), input_format, JSON_HEDLEY_UNLIKELY, detail::key, npos, parse_ubjson_internal(), and sax.
Referenced by get_ubjson_value().
|
inlineprivate |
determine the type and size for a container
In the optimized UBJSON format, a type and a size can be provided to allow for a more compact representation.
| [out] | result | pair of the size and the type |
| [in] | inside_ndarray | whether the parser is parsing an ND array dimensional vector |
Definition at line 11376 of file json.hpp.
References detail::bjdata, chars_read, detail::concat(), detail::parse_error::create(), current, exception_message(), get(), get_ignore_noop(), get_token_string(), get_ubjson_size_value(), input_format, is_error, JSON_HEDLEY_UNLIKELY, npos, result, sax, and unexpect_eof().
Referenced by get_ubjson_array(), get_ubjson_ndarray_size(), and get_ubjson_object().
|
inlineprivate |
| [out] | result | determined size |
| [in,out] | is_ndarray | for input, true means already inside an ndarray vector or ndarray dimension is not allowed; false means ndarray is allowed; for output, true means an ndarray is found; is_ndarray can only return true when its initial value is false |
| [in] | prefix | type marker if already read, otherwise set to 0 |
Definition at line 11153 of file json.hpp.
References detail::bjdata, chars_read, detail::conditional_static_cast(), detail::out_of_range::create(), detail::parse_error::create(), exception_message(), get_ignore_noop(), get_number(), get_token_string(), get_ubjson_ndarray_size(), input_format, JSON_HEDLEY_UNLIKELY, detail::key, npos, result, sax, and detail::value_in_range_of().
Referenced by get_ubjson_high_precision_number(), get_ubjson_ndarray_size(), and get_ubjson_size_type().
|
inlineprivate |
reads a UBJSON string
This function is either called after reading the 'S' byte explicitly indicating a string, or in case of an object key where the 'S' byte can be left out.
| [out] | result | created string |
| [in] | get_char | whether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead |
Definition at line 10993 of file json.hpp.
References detail::bjdata, chars_read, detail::parse_error::create(), current, exception_message(), get(), get_number(), get_string(), get_token_string(), input_format, JSON_HEDLEY_UNLIKELY, result, sax, and unexpect_eof().
Referenced by get_ubjson_object(), and get_ubjson_value().
|
inlineprivate |
| prefix | the previously read or set type prefix |
Definition at line 11443 of file json.hpp.
References detail::bjdata, chars_read, detail::concat(), detail::parse_error::create(), current, exception_message(), get(), get_number(), get_token_string(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_object(), get_ubjson_string(), input_format, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, sax, and unexpect_eof().
Referenced by get_ubjson_array(), get_ubjson_object(), and parse_ubjson_internal().
|
default |
References binary_reader().
|
delete |
References binary_reader().
|
inlineprivate |
Reads an array from the BSON input and passes it to the SAX-parser.
Definition at line 9534 of file json.hpp.
References detail::bson, get_number(), JSON_HEDLEY_UNLIKELY, parse_bson_element_list(), and sax.
Referenced by parse_bson_element_internal().
|
inlineprivate |
Read a BSON document element of the given element_type.
| [in] | element_type | The BSON element type, c.f. http://bsonspec.org/spec.html |
| [in] | element_type_parse_position | The position in the input stream, where the element_type was read. |
Definition at line 9416 of file json.hpp.
References detail::bson, detail::concat(), detail::parse_error::create(), get(), get_bson_binary(), get_bson_string(), get_number(), parse_bson_array(), parse_bson_internal(), sax, and detail::static_const< T >::value.
Referenced by parse_bson_element_list().
|
inlineprivate |
Read a BSON element list (as specified in the BSON-spec).
The same binary layout is used for objects and arrays, hence it must be indicated with the argument is_array which one is expected (true --> array, false --> object).
| [in] | is_array | Determines if the element list being read is to be treated as an object (is_array == false), or as an array (is_array == true). |
Definition at line 9496 of file json.hpp.
References detail::bson, chars_read, get(), is_array, JSON_HEDLEY_UNLIKELY, detail::key, parse_bson_element_internal(), sax, and unexpect_eof().
Referenced by parse_bson_array(), and parse_bson_internal().
|
inlineprivate |
Reads in a BSON-object and passes it to the SAX-parser.
Definition at line 9312 of file json.hpp.
References detail::bson, get_number(), JSON_HEDLEY_UNLIKELY, parse_bson_element_list(), and sax.
Referenced by parse_bson_element_internal(), and sax_parse().
|
inlineprivate |
| [in] | get_char | whether a new character should be retrieved from the input (true) or whether the last read character should be considered instead (false) |
| [in] | tag_handler | how CBOR tags should be treated |
Definition at line 9564 of file json.hpp.
References b, detail::cbor, chars_read, detail::concat(), detail::conditional_static_cast(), detail::parse_error::create(), current, detail::error, exception_message(), get(), get_cbor_array(), get_cbor_binary(), get_cbor_object(), get_cbor_string(), get_number(), get_token_string(), detail::ignore, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, parse_cbor_internal(), sax, detail::store, and unexpect_eof().
Referenced by get_cbor_array(), get_cbor_object(), parse_cbor_internal(), and sax_parse().
|
inlineprivate |
Definition at line 10340 of file json.hpp.
References b, chars_read, detail::concat(), detail::conditional_static_cast(), detail::parse_error::create(), current, exception_message(), get(), get_msgpack_array(), get_msgpack_binary(), get_msgpack_object(), get_msgpack_string(), get_number(), get_token_string(), detail::msgpack, sax, and unexpect_eof().
Referenced by get_msgpack_array(), get_msgpack_object(), and sax_parse().
|
inlineprivate |
| [in] | get_char | whether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead |
Definition at line 10974 of file json.hpp.
References current, get_ignore_noop(), and get_ubjson_value().
Referenced by get_ubjson_array(), get_ubjson_object(), and sax_parse().
|
inline |
| [in] | format | the binary format to parse |
| [in] | sax_ | a SAX event processor |
| [in] | strict | whether to expect the input to be consumed completed |
| [in] | tag_handler | how to treat CBOR tags |
Definition at line 9249 of file json.hpp.
References detail::bjdata, detail::bson, detail::cbor, chars_read, detail::concat(), detail::parse_error::create(), current, exception_message(), format(), get(), get_ignore_noop(), get_token_string(), input_format, detail::json, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, detail::msgpack, parse_bson_internal(), parse_cbor_internal(), parse_msgpack_internal(), parse_ubjson_internal(), result, sax, sax_parse(), detail::strict, and detail::ubjson.
Referenced by sax_parse().
|
inlineprivate |
| [in] | format | the current format (for diagnostics) |
| [in] | context | further context information (for diagnostics) |
Definition at line 12032 of file json.hpp.
References chars_read, detail::parse_error::create(), current, exception_message(), format(), JSON_HEDLEY_UNLIKELY, sax, and unexpect_eof().
Referenced by get_binary(), get_cbor_binary(), get_cbor_string(), get_msgpack_string(), get_number(), get_string(), get_ubjson_high_precision_number(), get_ubjson_size_type(), get_ubjson_string(), get_ubjson_value(), parse_bson_element_list(), parse_cbor_internal(), parse_msgpack_internal(), and unexpect_eof().
|
private |
|
private |
Definition at line 12141 of file json.hpp.
Referenced by get_ubjson_array().
|
private |
Definition at line 12104 of file json.hpp.
Referenced by get(), get_bson_binary(), get_bson_string(), get_cbor_binary(), get_cbor_string(), get_msgpack_string(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), parse_bson_element_list(), parse_cbor_internal(), parse_msgpack_internal(), sax_parse(), and unexpect_eof().
|
private |
Definition at line 12101 of file json.hpp.
Referenced by get(), get_binary(), get_cbor_binary(), get_cbor_string(), get_ignore_noop(), get_msgpack_binary(), get_msgpack_string(), get_number(), get_string(), get_token_string(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_ndarray_size(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_string(), get_ubjson_value(), parse_cbor_internal(), parse_msgpack_internal(), parse_ubjson_internal(), sax_parse(), and unexpect_eof().
|
private |
Definition at line 12098 of file json.hpp.
Referenced by binary_reader(), and get().
|
private |
Definition at line 12110 of file json.hpp.
Referenced by binary_reader(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), and sax_parse().
|
private |
Definition at line 12107 of file json.hpp.
Referenced by get_number().
|
staticconstexprprivate |
Definition at line 12095 of file json.hpp.
Referenced by get_ubjson_array(), get_ubjson_ndarray_size(), get_ubjson_object(), get_ubjson_size_type(), and get_ubjson_size_value().
|
private |
Definition at line 12113 of file json.hpp.
Referenced by get_bson_binary(), get_bson_string(), get_cbor_array(), get_cbor_binary(), get_cbor_object(), get_cbor_string(), get_msgpack_array(), get_msgpack_object(), get_msgpack_string(), get_ubjson_array(), get_ubjson_high_precision_number(), get_ubjson_object(), get_ubjson_size_type(), get_ubjson_size_value(), get_ubjson_string(), get_ubjson_value(), parse_bson_array(), parse_bson_element_internal(), parse_bson_element_list(), parse_bson_internal(), parse_cbor_internal(), parse_msgpack_internal(), sax_parse(), and unexpect_eof().