Tag binary values in cbor if set

CBOR has tags, which work similarly to "subtype"s:

https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml

Unsure if this makes sense. Note that the subtype must just be one
byte wide.
This commit is contained in:
Matthew Bauer 2020-07-02 17:40:02 -04:00
parent eb7376bb13
commit e54f03f73b
2 changed files with 12 additions and 0 deletions

View file

@ -279,6 +279,12 @@ class binary_writer
case value_t::binary: case value_t::binary:
{ {
if (j.m_value.binary->has_subtype())
{
write_number(static_cast<std::uint8_t>(0xd8));
write_number(j.m_value.binary->subtype());
}
// step 1: write control byte and the binary array size // step 1: write control byte and the binary array size
const auto N = j.m_value.binary->size(); const auto N = j.m_value.binary->size();
if (N <= 0x17) if (N <= 0x17)

View file

@ -12641,6 +12641,12 @@ class binary_writer
case value_t::binary: case value_t::binary:
{ {
if (j.m_value.binary->has_subtype())
{
write_number(static_cast<std::uint8_t>(0xd8));
write_number(j.m_value.binary->subtype());
}
// step 1: write control byte and the binary array size // step 1: write control byte and the binary array size
const auto N = j.m_value.binary->size(); const auto N = j.m_value.binary->size();
if (N <= 0x17) if (N <= 0x17)