MCPcopy Create free account
hub / github.com/CalcProgrammer1/OpenRGB / write_ubjson

Method write_ubjson

dependencies/json/json.hpp:13496–13692  ·  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

13494 @param[in] add_prefix whether prefixes need to be used for this value
13495 */
13496 void write_ubjson(const BasicJsonType& j, const bool use_count,
13497 const bool use_type, const bool add_prefix = true)
13498 {
13499 switch (j.type())
13500 {
13501 case value_t::null:
13502 {
13503 if (add_prefix)
13504 {
13505 oa->write_character(to_char_type('Z'));
13506 }
13507 break;
13508 }
13509
13510 case value_t::boolean:
13511 {
13512 if (add_prefix)
13513 {
13514 oa->write_character(j.m_value.boolean
13515 ? to_char_type('T')
13516 : to_char_type('F'));
13517 }
13518 break;
13519 }
13520
13521 case value_t::number_integer:
13522 {
13523 write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix);
13524 break;
13525 }
13526
13527 case value_t::number_unsigned:
13528 {
13529 write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix);
13530 break;
13531 }
13532
13533 case value_t::number_float:
13534 {
13535 write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix);
13536 break;
13537 }
13538
13539 case value_t::string:
13540 {
13541 if (add_prefix)
13542 {
13543 oa->write_character(to_char_type('S'));
13544 }
13545 write_number_with_ubjson_prefix(j.m_value.string->size(), true);
13546 oa->write_characters(
13547 reinterpret_cast<const CharType*>(j.m_value.string->c_str()),
13548 j.m_value.string->size());
13549 break;
13550 }
13551
13552 case value_t::array:
13553 {

Callers 1

to_ubjsonFunction · 0.45

Calls 6

dataMethod · 0.80
write_characterMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected