MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / write_ubjson

Method write_ubjson

Source/external/json.hpp:15654–15864  ·  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 @param[in] use_bjdata whether write in BJData format, default is false */

Source from the content-addressed store, hash-verified

15652 @param[in] use_bjdata whether write in BJData format, default is false
15653 */
15654 void write_ubjson(const BasicJsonType& j, const bool use_count,
15655 const bool use_type, const bool add_prefix = true,
15656 const bool use_bjdata = false)
15657 {
15658 switch (j.type())
15659 {
15660 case value_t::null:
15661 {
15662 if (add_prefix)
15663 {
15664 oa->write_character(to_char_type('Z'));
15665 }
15666 break;
15667 }
15668
15669 case value_t::boolean:
15670 {
15671 if (add_prefix)
15672 {
15673 oa->write_character(j.m_value.boolean
15674 ? to_char_type('T')
15675 : to_char_type('F'));
15676 }
15677 break;
15678 }
15679
15680 case value_t::number_integer:
15681 {
15682 write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix, use_bjdata);
15683 break;
15684 }
15685
15686 case value_t::number_unsigned:
15687 {
15688 write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix, use_bjdata);
15689 break;
15690 }
15691
15692 case value_t::number_float:
15693 {
15694 write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix, use_bjdata);
15695 break;
15696 }
15697
15698 case value_t::string:
15699 {
15700 if (add_prefix)
15701 {
15702 oa->write_character(to_char_type('S'));
15703 }
15704 write_number_with_ubjson_prefix(j.m_value.string->size(), true, use_bjdata);
15705 oa->write_characters(
15706 reinterpret_cast<const CharType*>(j.m_value.string->c_str()),
15707 j.m_value.string->size());
15708 break;
15709 }
15710
15711 case value_t::array:

Callers 2

to_ubjsonFunction · 0.80
to_bjdataFunction · 0.80

Calls 6

findFunction · 0.85
sizeMethod · 0.80
emptyMethod · 0.80
beginMethod · 0.80
endMethod · 0.80
write_characterMethod · 0.45

Tested by

no test coverage detected