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

Method write_msgpack

dependencies/json/json.hpp:13172–13488  ·  view source on GitHub ↗

! @param[in] j JSON value to serialize */

Source from the content-addressed store, hash-verified

13170 @param[in] j JSON value to serialize
13171 */
13172 void write_msgpack(const BasicJsonType& j)
13173 {
13174 switch (j.type())
13175 {
13176 case value_t::null: // nil
13177 {
13178 oa->write_character(to_char_type(0xC0));
13179 break;
13180 }
13181
13182 case value_t::boolean: // true and false
13183 {
13184 oa->write_character(j.m_value.boolean
13185 ? to_char_type(0xC3)
13186 : to_char_type(0xC2));
13187 break;
13188 }
13189
13190 case value_t::number_integer:
13191 {
13192 if (j.m_value.number_integer >= 0)
13193 {
13194 // MessagePack does not differentiate between positive
13195 // signed integers and unsigned integers. Therefore, we used
13196 // the code from the value_t::number_unsigned case here.
13197 if (j.m_value.number_unsigned < 128)
13198 {
13199 // positive fixnum
13200 write_number(static_cast<std::uint8_t>(j.m_value.number_integer));
13201 }
13202 else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())
13203 {
13204 // uint 8
13205 oa->write_character(to_char_type(0xCC));
13206 write_number(static_cast<std::uint8_t>(j.m_value.number_integer));
13207 }
13208 else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)())
13209 {
13210 // uint 16
13211 oa->write_character(to_char_type(0xCD));
13212 write_number(static_cast<std::uint16_t>(j.m_value.number_integer));
13213 }
13214 else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)())
13215 {
13216 // uint 32
13217 oa->write_character(to_char_type(0xCE));
13218 write_number(static_cast<std::uint32_t>(j.m_value.number_integer));
13219 }
13220 else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)())
13221 {
13222 // uint 64
13223 oa->write_character(to_char_type(0xCF));
13224 write_number(static_cast<std::uint64_t>(j.m_value.number_integer));
13225 }
13226 }
13227 else
13228 {
13229 if (j.m_value.number_integer >= -32)

Callers 1

to_msgpackFunction · 0.45

Calls 5

dataMethod · 0.80
write_characterMethod · 0.45
sizeMethod · 0.45
has_subtypeMethod · 0.45
subtypeMethod · 0.45

Tested by

no test coverage detected