Struct cbor_data::CborOwned [−][src]
pub struct CborOwned(_);Expand description
Wrapper around a vector of bytes, for parsing as CBOR.
For details on the format see RFC 8949.
When interpreting CBOR messages from the outside (e.g. from the network) it is
advisable to ingest those using the canonical constructor.
In case the message was encoded for example using CborBuilder
it is sufficient to use the trusting constructor.
Canonicalisation rqeuires an intermediary data buffer, which can be supplied (and reused) by the caller to save on allocations.
Implementations
Copy the bytes and wrap for indexing.
No checks on the integrity are made, indexing methods may panic if encoded lengths are out of bound.
If you want to carefully treat data obtained from unreliable sources, prefer
canonical().
Copy the bytes while checking for integrity and replacing indefinite (byte) strings with definite ones.
This constructor will go through and decode the whole provided CBOR bytes and write them into a vector, thereby
- writing large arrays and dicts using indefinite size format
- writing numbers in their smallest form
For more configuration options like reusing a scratch space or preferring definite size encoding
see CborBuilder.
Methods from Deref<Target = Cbor>
A view onto the underlying bytes
Interpret the CBOR item at a higher level
While kind gives you precise information on how the item is encoded,
this method interprets the tag-based encoding according to the standard, adding for example
big integers, decimals, and floats, or turning base64-encoded text strings into binary strings.
An iterator over the tags present on this item, from outermost to innermost
The low-level encoding of this item with its tags
pub fn index<'a, 'b>(
&'a self,
path: impl IntoIterator<Item = PathElement<'b>>
) -> Option<Cow<'a, Cbor>>
pub fn index<'a, 'b>(
&'a self,
path: impl IntoIterator<Item = PathElement<'b>>
) -> Option<Cow<'a, Cbor>>
Extract a value by indexing into arrays and dicts, with path elements yielded by an iterator.
Returns None if an index doesn’t exist or the indexed object is neither an array nor a dict. When the object under consideration is an array, the next path element must represent an integer number.
Providing an empty iterator will yield the current Cbor item.
Returns a borrowed Cbor unless the traversal entered a TAG_CBOR_ITEM byte string with indefinite
encoding (in which case the bytes need to be assembled into a Vec before continuing). This cannot
happen if the item being indexed stems from CborOwned::canonical.
pub fn index_borrowed<'a, 'b>(
&'a self,
path: impl IntoIterator<Item = PathElement<'b>>
) -> Option<&'a Cbor>
pub fn index_borrowed<'a, 'b>(
&'a self,
path: impl IntoIterator<Item = PathElement<'b>>
) -> Option<&'a Cbor>
Extract a value by indexing into arrays and dicts, with path elements yielded by an iterator.
Returns None if an index doesn’t exist or the indexed object is neither an array nor a dict. When the object under consideration is an array, the next path element must represent an integer number.
Providing an empty iterator will yield the current Cbor item.
Panics
Panics if this CBOR item contains a TAG_CBOR_ITEM byte string that has been index into by this
path traversal. Use CborOwned::canonical to ensure
that this cannot happen.
Trait Implementations
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for CborOwned
impl UnwindSafe for CborOwned
Blanket Implementations
Mutably borrows from an owned value. Read more