! @param prefix the previously read or set type prefix @return whether value creation completed */
| 6704 | @return whether value creation completed |
| 6705 | */ |
| 6706 | bool get_ubjson_value(const int prefix) |
| 6707 | { |
| 6708 | switch (prefix) |
| 6709 | { |
| 6710 | case std::char_traits<char>::eof(): // EOF |
| 6711 | return unexpect_eof(input_format_t::ubjson, "value"); |
| 6712 | |
| 6713 | case 'T': // true |
| 6714 | return sax->boolean(true); |
| 6715 | case 'F': // false |
| 6716 | return sax->boolean(false); |
| 6717 | |
| 6718 | case 'Z': // null |
| 6719 | return sax->null(); |
| 6720 | |
| 6721 | case 'U': |
| 6722 | { |
| 6723 | std::uint8_t number; |
| 6724 | return get_number(input_format_t::ubjson, number) and sax->number_unsigned(number); |
| 6725 | } |
| 6726 | |
| 6727 | case 'i': |
| 6728 | { |
| 6729 | std::int8_t number; |
| 6730 | return get_number(input_format_t::ubjson, number) and sax->number_integer(number); |
| 6731 | } |
| 6732 | |
| 6733 | case 'I': |
| 6734 | { |
| 6735 | std::int16_t number; |
| 6736 | return get_number(input_format_t::ubjson, number) and sax->number_integer(number); |
| 6737 | } |
| 6738 | |
| 6739 | case 'l': |
| 6740 | { |
| 6741 | std::int32_t number; |
| 6742 | return get_number(input_format_t::ubjson, number) and sax->number_integer(number); |
| 6743 | } |
| 6744 | |
| 6745 | case 'L': |
| 6746 | { |
| 6747 | std::int64_t number; |
| 6748 | return get_number(input_format_t::ubjson, number) and sax->number_integer(number); |
| 6749 | } |
| 6750 | |
| 6751 | case 'd': |
| 6752 | { |
| 6753 | float number; |
| 6754 | return get_number(input_format_t::ubjson, number) and sax->number_float(static_cast<number_float_t>(number), ""); |
| 6755 | } |
| 6756 | |
| 6757 | case 'D': |
| 6758 | { |
| 6759 | double number; |
| 6760 | return get_number(input_format_t::ubjson, number) and sax->number_float(static_cast<number_float_t>(number), ""); |
| 6761 | } |
| 6762 | |
| 6763 | case 'C': // char |
nothing calls this directly
no test coverage detected