! @param prefix the previously read or set type prefix @return whether value creation completed */
| 9657 | @return whether value creation completed |
| 9658 | */ |
| 9659 | bool get_ubjson_value(const char_int_type prefix) |
| 9660 | { |
| 9661 | switch (prefix) |
| 9662 | { |
| 9663 | case std::char_traits<char_type>::eof(): // EOF |
| 9664 | return unexpect_eof(input_format_t::ubjson, "value"); |
| 9665 | |
| 9666 | case 'T': // true |
| 9667 | return sax->boolean(true); |
| 9668 | case 'F': // false |
| 9669 | return sax->boolean(false); |
| 9670 | |
| 9671 | case 'Z': // null |
| 9672 | return sax->null(); |
| 9673 | |
| 9674 | case 'U': |
| 9675 | { |
| 9676 | std::uint8_t number{}; |
| 9677 | return get_number(input_format_t::ubjson, number) && sax->number_unsigned(number); |
| 9678 | } |
| 9679 | |
| 9680 | case 'i': |
| 9681 | { |
| 9682 | std::int8_t number{}; |
| 9683 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9684 | } |
| 9685 | |
| 9686 | case 'I': |
| 9687 | { |
| 9688 | std::int16_t number{}; |
| 9689 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9690 | } |
| 9691 | |
| 9692 | case 'l': |
| 9693 | { |
| 9694 | std::int32_t number{}; |
| 9695 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9696 | } |
| 9697 | |
| 9698 | case 'L': |
| 9699 | { |
| 9700 | std::int64_t number{}; |
| 9701 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9702 | } |
| 9703 | |
| 9704 | case 'd': |
| 9705 | { |
| 9706 | float number{}; |
| 9707 | return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast<number_float_t>(number), ""); |
| 9708 | } |
| 9709 | |
| 9710 | case 'D': |
| 9711 | { |
| 9712 | double number{}; |
| 9713 | return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast<number_float_t>(number), ""); |
| 9714 | } |
| 9715 | |
| 9716 | case 'H': |
nothing calls this directly
no test coverage detected