Skip to main content

PayloadBytes

Struct PayloadBytes 

Source
pub struct PayloadBytes<T = ()> { /* private fields */ }
Expand description

Payload and bytes.

Stores the payload value as interpreted by the application (type T) and the original payload bytes.

The original payload bytes are always preserved since they can not always be deterministically (or cheaply) reconstructed from the typed payload value.

Implementations§

Source§

impl PayloadBytes

Source

pub fn from_bytes(bytes: Vec<u8>) -> Self

Creates a new PayloadBytes from the bytes.

The interpretation of the bytes will be unit ().

Source§

impl<T: CosePayload> PayloadBytes<T>

Source

pub fn new(value: T) -> Self

Creates a new PayloadBytes from the payload, using CosePayload::payload_bytes to reconstruct the payload bytes.

Source§

impl<T> PayloadBytes<T>

Source

pub fn as_bytes(&self) -> &[u8]

Returns the bytes as a slice.

Source

pub fn map<U>(self, f: impl FnOnce(T, &[u8]) -> U) -> PayloadBytes<U>

Maps the payload interpretation.

This function can be used to decode the raw payload bytes into a proper typed value the application can work with.

Source

pub fn try_map<U, E>( self, f: impl FnOnce(T, &[u8]) -> Result<U, E>, ) -> Result<PayloadBytes<U>, E>

Tries to map the payload interpretation.

This function can be used to decode the raw payload bytes into a proper typed value the application can work with.

Source

pub fn into_bytes(self) -> Vec<u8>

Forgets about the payload interpretation and returns the raw bytes.

Trait Implementations§

Source§

impl<T> Borrow<T> for PayloadBytes<T>

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T: Clone> Clone for PayloadBytes<T>

Source§

fn clone(&self) -> PayloadBytes<T>

Returns a duplicate 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<T> Deref for PayloadBytes<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: PartialEq> PartialEq for PayloadBytes<T>

Source§

fn eq(&self, other: &PayloadBytes<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> StructuralPartialEq for PayloadBytes<T>

Auto Trait Implementations§

§

impl<T> Freeze for PayloadBytes<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for PayloadBytes<T>
where T: RefUnwindSafe,

§

impl<T> Send for PayloadBytes<T>
where T: Send,

§

impl<T> Sync for PayloadBytes<T>
where T: Sync,

§

impl<T> Unpin for PayloadBytes<T>
where T: Unpin,

§

impl<T> UnwindSafe for PayloadBytes<T>
where T: UnwindSafe,

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> At for T

Source§

fn at<M>(self, metadata: M) -> Meta<T, M>

Wraps self inside a Meta<Self, M> using the given metadata. 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> BorrowStripped for T

Source§

fn stripped(&self) -> &Stripped<T>

Source§

impl<T> BorrowUnordered for T

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, C> FromWithContext<T, C> for T

Source§

fn from_with(value: T, _context: &C) -> T

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, U, C> IntoWithContext<U, C> for T
where U: FromWithContext<T, C>,

Source§

fn into_with(self, context: &C) -> U

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ResourceProvider<()> for T

Source§

fn get_resource(&self) -> &()

Returns a reference to the resource of type T.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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> ToOwned for T

Source§

type Owned = T

Source§

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

Source§

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, C> TryFromWithContext<U, C> for T
where U: IntoWithContext<T, C>,

Source§

type Error = Infallible

Source§

fn try_from_with( value: U, context: &C, ) -> Result<T, <T as TryFromWithContext<U, C>>::Error>

Source§

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

Source§

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.
Source§

impl<T, U, C> TryIntoWithContext<U, C> for T
where U: TryFromWithContext<T, C>,

Source§

type Error = <U as TryFromWithContext<T, C>>::Error

Source§

fn try_into_with( self, context: &C, ) -> Result<U, <T as TryIntoWithContext<U, C>>::Error>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

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

Source§

fn with<C>(&self, context: C) -> Contextual<&T, C>

Source§

fn into_with<C>(self, context: C) -> Contextual<T, C>