! @param prefix the previously read or set type prefix @return whether value creation completed */
| 9588 | @return whether value creation completed |
| 9589 | */ |
| 9590 | bool get_ubjson_value(const char_int_type prefix) |
| 9591 | { |
| 9592 | switch (prefix) |
| 9593 | { |
| 9594 | case std::char_traits<char_type>::eof(): // EOF |
| 9595 | return unexpect_eof(input_format_t::ubjson, "value"); |
| 9596 | |
| 9597 | case 'T': // true |
| 9598 | return sax->boolean(true); |
| 9599 | case 'F': // false |
| 9600 | return sax->boolean(false); |
| 9601 | |
| 9602 | case 'Z': // null |
| 9603 | return sax->null(); |
| 9604 | |
| 9605 | case 'U': |
| 9606 | { |
| 9607 | std::uint8_t number{}; |
| 9608 | return get_number(input_format_t::ubjson, number) && sax->number_unsigned(number); |
| 9609 | } |
| 9610 | |
| 9611 | case 'i': |
| 9612 | { |
| 9613 | std::int8_t number{}; |
| 9614 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9615 | } |
| 9616 | |
| 9617 | case 'I': |
| 9618 | { |
| 9619 | std::int16_t number{}; |
| 9620 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9621 | } |
| 9622 | |
| 9623 | case 'l': |
| 9624 | { |
| 9625 | std::int32_t number{}; |
| 9626 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9627 | } |
| 9628 | |
| 9629 | case 'L': |
| 9630 | { |
| 9631 | std::int64_t number{}; |
| 9632 | return get_number(input_format_t::ubjson, number) && sax->number_integer(number); |
| 9633 | } |
| 9634 | |
| 9635 | case 'd': |
| 9636 | { |
| 9637 | float number{}; |
| 9638 | return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast<number_float_t>(number), ""); |
| 9639 | } |
| 9640 | |
| 9641 | case 'D': |
| 9642 | { |
| 9643 | double number{}; |
| 9644 | return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast<number_float_t>(number), ""); |
| 9645 | } |
| 9646 | |
| 9647 | case 'H': |
nothing calls this directly
no test coverage detected