Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2020-09-16 15:19:56

Vinnie Falco wrote:

> So what is being discussed here is "partial CBOR support?" In other words,
> only the subset of CBOR that perfectly overlaps with JSON?

Well, it's self-evident that parsing a json::value from, and serializing a
json::value to, CBOR, only could ever support the subset of CBOR that's
representable in json::value. Fortunately, that's almost all of CBOR,
because that's what CBOR is for.

> > (There is actually a fully compatible way to support "binary values" in
> > json::value, but it will require some hammering out.)
> Well, let's hear it!

You may remember my going on and on about arrays of scalars at one point.
This is what MessagePack gets right - arrays of scalars are an important
special case and stuffing them into the general value[] representation
wastes both memory and performance.

If json::array supported internally arrays of scalars, without changing its
interface at all so it still appeared to clients as a json::array of
json::values, we could represent a binary value as a json::array (which
internally uses a scalar type of unsigned char.)

This magically solves everything - value_to<vector<unsigned char>> works,
value_from same works, it roundtrips.

Boost list run by bdawes at, gregod at, cpdaniel at, john at