! @param prefix the previously read or set type prefix @return whether value creation completed */
| 11371 | @return whether value creation completed |
| 11372 | */ |
| 11373 | bool get_ubjson_value(const char_int_type prefix) |
| 11374 | { |
| 11375 | switch (prefix) |
| 11376 | { |
| 11377 | case std::char_traits<char_type>::eof(): // EOF |
| 11378 | return unexpect_eof(input_format, "value"); |
| 11379 | |
| 11380 | case 'T': // true |
| 11381 | return sax->boolean(true); |
| 11382 | case 'F': // false |
| 11383 | return sax->boolean(false); |
| 11384 | |
| 11385 | case 'Z': // null |
| 11386 | return sax->null(); |
| 11387 | |
| 11388 | case 'U': |
| 11389 | { |
| 11390 | std::uint8_t number{}; |
| 11391 | return get_number(input_format, number) && sax->number_unsigned(number); |
| 11392 | } |
| 11393 | |
| 11394 | case 'i': |
| 11395 | { |
| 11396 | std::int8_t number{}; |
| 11397 | return get_number(input_format, number) && sax->number_integer(number); |
| 11398 | } |
| 11399 | |
| 11400 | case 'I': |
| 11401 | { |
| 11402 | std::int16_t number{}; |
| 11403 | return get_number(input_format, number) && sax->number_integer(number); |
| 11404 | } |
| 11405 | |
| 11406 | case 'l': |
| 11407 | { |
| 11408 | std::int32_t number{}; |
| 11409 | return get_number(input_format, number) && sax->number_integer(number); |
| 11410 | } |
| 11411 | |
| 11412 | case 'L': |
| 11413 | { |
| 11414 | std::int64_t number{}; |
| 11415 | return get_number(input_format, number) && sax->number_integer(number); |
| 11416 | } |
| 11417 | |
| 11418 | case 'u': |
| 11419 | { |
| 11420 | if (input_format != input_format_t::bjdata) |
| 11421 | { |
| 11422 | break; |
| 11423 | } |
| 11424 | std::uint16_t number{}; |
| 11425 | return get_number(input_format, number) && sax->number_unsigned(number); |
| 11426 | } |
| 11427 | |
| 11428 | case 'm': |
| 11429 | { |
| 11430 | if (input_format != input_format_t::bjdata) |
nothing calls this directly
no test coverage detected