Struct aws_smithy_cbor::decode::Decoder

source ·
pub struct Decoder<'b> { /* private fields */ }
Expand description

Provides functions for decoding a CBOR object with a known schema.

Although CBOR is a self-describing format, this decoder is tailored for cases where the schema is known in advance. Therefore, the caller can determine which object key exists at the current position by calling str method, and call the relevant function based on the predetermined schema for that key. If an unexpected key is encountered, the caller can use the skip method to skip over the element.

Implementations§

source§

impl<'b> Decoder<'b>

source

pub fn new(bytes: &'b [u8]) -> Self

source

pub fn datatype(&self) -> Result<Type, DeserializeError>

source

pub fn skip(&mut self) -> Result<(), DeserializeError>

source

pub fn boolean(&mut self) -> Result<bool, DeserializeError>

source

pub fn byte(&mut self) -> Result<i8, DeserializeError>

source

pub fn short(&mut self) -> Result<i16, DeserializeError>

source

pub fn integer(&mut self) -> Result<i32, DeserializeError>

source

pub fn long(&mut self) -> Result<i64, DeserializeError>

source

pub fn float(&mut self) -> Result<f32, DeserializeError>

source

pub fn double(&mut self) -> Result<f64, DeserializeError>

source

pub fn null(&mut self) -> Result<(), DeserializeError>

source

pub fn list(&mut self) -> Result<Option<u64>, DeserializeError>

source

pub fn map(&mut self) -> Result<Option<u64>, DeserializeError>

source

pub fn position(&self) -> usize

Returns the current position of the buffer, which will be decoded when any of the methods is called.

source

pub fn str(&mut self) -> Result<Cow<'b, str>, DeserializeError>

Returns a Cow::Borrowed(&str) if the element at the current position in the buffer is a definite length string. Otherwise, it returns a Cow::Owned(String) if the element at the current position is an indefinite-length string. An error is returned if the element is neither a definite length nor an indefinite-length string.

source

pub fn string(&mut self) -> Result<String, DeserializeError>

Allocates and returns a String if the element at the current position in the buffer is either a definite-length or an indefinite-length string. Otherwise, an error is returned if the element is not a string type.

source

pub fn blob(&mut self) -> Result<Blob, DeserializeError>

Returns a blob if the element at the current position in the buffer is a byte string. Otherwise, a DeserializeError error is returned.

source

pub fn timestamp(&mut self) -> Result<DateTime, DeserializeError>

Returns a DateTime if the element at the current position in the buffer is a timestamp. Otherwise, a DeserializeError error is returned.

Trait Implementations§

source§

impl<'b> Clone for Decoder<'b>

source§

fn clone(&self) -> Decoder<'b>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'b> Debug for Decoder<'b>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'b> Freeze for Decoder<'b>

§

impl<'b> RefUnwindSafe for Decoder<'b>

§

impl<'b> Send for Decoder<'b>

§

impl<'b> Sync for Decoder<'b>

§

impl<'b> Unpin for Decoder<'b>

§

impl<'b> UnwindSafe for Decoder<'b>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more