pub enum Value {
Null,
Bool(bool),
Integer(i128),
Float(f64),
Bytes(Vec<u8>),
Text(String),
Array(Vec<Self>),
Map(BTreeMap<Self, Self>),
Tag(u64, Box<Self>),
// some variants omitted
}
Expand description
The Value enum, a loosely typed way of representing any valid CBOR value.
Maps are sorted according to the canonical ordering
described in RFC 7049 bis.
Therefore values are unambiguously serialized
to a canonical form of CBOR from the same RFC.
The biggest value that can be represented is 2^64 - 1.
While the smallest value is -2^64.
Values outside this range can’t be serialized
and will cause an error.
Maps are also called tables, dictionaries, hashes, or objects (in JSON).
While any value can be used as a CBOR key
it is better to use only one type of key in a map
to avoid ambiguity.
If floating point values are used as keys they are compared bit-by-bit for equality.
If arrays or maps are used as keys the comparisons
to establish canonical order may be slow and therefore insertion
and retrieval of values will be slow too.