pub enum Value {
Null,
Bool(bool),
Integer(i128),
Float(f64),
Bytes(Vec<u8>),
Text(String),
Array(Vec<Value>),
Map(BTreeMap<Value, Value>),
Tag(u64, Box<Value>),
// 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.
Variants§
Null
Represents the absence of a value or the value undefined.
Bool(bool)
Represents a boolean value.
Integer(i128)
Integer CBOR numbers.
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.
Float(f64)
Represents a floating point value.
Bytes(Vec<u8>)
Represents a byte string.
Text(String)
Represents an UTF-8 encoded string.
Array(Vec<Value>)
Represents an array of values.
Map(BTreeMap<Value, Value>)
Represents a map.
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.
Tag(u64, Box<Value>)
Represents a tagged value
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Value
impl<'de> Deserialize<'de> for Value
Source§fn deserialize<D>(deserializer: D) -> Result<Value, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Value, D::Error>where
D: Deserializer<'de>,
Source§impl Ord for Value
impl Ord for Value
Source§impl PartialOrd for Value
impl PartialOrd for Value
impl Eq for Value
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)