MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / write_ubjson

Method write_ubjson

Source/Utils/json.hpp:13421–13617  ·  view source on GitHub ↗

! @param[in] j JSON value to serialize @param[in] use_count whether to use '#' prefixes (optimized format) @param[in] use_type whether to use '$' prefixes (optimized format) @param[in] add_prefix whether prefixes need to be used for this value */

Source from the content-addressed store, hash-verified

13419 @param[in] add_prefix whether prefixes need to be used for this value
13420 */
13421 void write_ubjson(const BasicJsonType& j, const bool use_count,
13422 const bool use_type, const bool add_prefix = true)
13423 {
13424 switch (j.type())
13425 {
13426 case value_t::null:
13427 {
13428 if (add_prefix)
13429 {
13430 oa->write_character(to_char_type('Z'));
13431 }
13432 break;
13433 }
13434
13435 case value_t::boolean:
13436 {
13437 if (add_prefix)
13438 {
13439 oa->write_character(j.m_value.boolean
13440 ? to_char_type('T')
13441 : to_char_type('F'));
13442 }
13443 break;
13444 }
13445
13446 case value_t::number_integer:
13447 {
13448 write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix);
13449 break;
13450 }
13451
13452 case value_t::number_unsigned:
13453 {
13454 write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix);
13455 break;
13456 }
13457
13458 case value_t::number_float:
13459 {
13460 write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix);
13461 break;
13462 }
13463
13464 case value_t::string:
13465 {
13466 if (add_prefix)
13467 {
13468 oa->write_character(to_char_type('S'));
13469 }
13470 write_number_with_ubjson_prefix(j.m_value.string->size(), true);
13471 oa->write_characters(
13472 reinterpret_cast<const CharType*>(j.m_value.string->c_str()),
13473 j.m_value.string->size());
13474 break;
13475 }
13476
13477 case value_t::array:
13478 {

Callers 1

to_ubjsonFunction · 0.80

Calls 7

typeMethod · 0.80
write_characterMethod · 0.45
sizeMethod · 0.45
write_charactersMethod · 0.45
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected