Skip to main content

Decode

Trait Decode 

Source
pub unsafe trait Decode<D: ?Sized>: Constrained {
    // Required method
    fn decode(
        slot: Slot<'_, Self>,
        decoder: &mut D,
        constraint: Self::Constraint,
    ) -> Result<(), DecodeError>;
}
Expand description

Decodes a value from the given slot.

§Safety

If decode returns Ok, then the provided slot will contain a valid decoded value after the decoder is committed.

Required Methods§

Source

fn decode( slot: Slot<'_, Self>, decoder: &mut D, constraint: Self::Constraint, ) -> Result<(), DecodeError>

Decodes a value into a slot using a decoder.

If decoding succeeds, slot will contain a valid decoded value after the decoder is committed. If decoding fails, an error will be returned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<D: ?Sized> Decode<D> for bool

Source§

fn decode(slot: Slot<'_, Self>, _: &mut D, _: ()) -> Result<(), DecodeError>

Source§

impl<D: ?Sized> Decode<D> for i8

Source§

fn decode(_: Slot<'_, Self>, _: &mut D, _: ()) -> Result<(), DecodeError>

Source§

impl<D: ?Sized> Decode<D> for u8

Source§

fn decode(_: Slot<'_, Self>, _: &mut D, _: ()) -> Result<(), DecodeError>

Source§

impl<D: ?Sized> Decode<D> for ()

Source§

fn decode(_: Slot<'_, Self>, _: &mut D, _: ()) -> Result<(), DecodeError>

Source§

impl<D: ?Sized, T: Decode<D>, const N: usize> Decode<D> for [T; N]

Source§

fn decode( slot: Slot<'_, Self>, decoder: &mut D, constraint: T::Constraint, ) -> Result<(), DecodeError>

Implementors§

Source§

impl<'de, D, T> Decode<D> for OptionalVector<'de, T>
where D: Decoder<'de> + ?Sized, T: Decode<D>,

Source§

impl<'de, D, T> Decode<D> for Vector<'de, T>
where D: Decoder<'de> + ?Sized, T: Decode<D>,

Source§

impl<'de, D, T, E> Decode<D> for Result<'de, T, E>
where D: Decoder<'de> + ?Sized, T: Decode<D, Constraint = ()>, E: Decode<D, Constraint = ()>,

Source§

impl<'de, D: Decoder<'de> + ?Sized> Decode<D> for OptionalString<'de>

Source§

impl<'de, D: Decoder<'de> + ?Sized> Decode<D> for String<'de>

Source§

impl<'de, D: Decoder<'de> + ?Sized, T: Decode<D>> Decode<D> for Box<'de, T>

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Bti

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Channel

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Clock

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Counter

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for DebugLog

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Event

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for EventPair

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Exception

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Fifo

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Guest

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Interrupt

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Iob

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Iommu

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Job

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalBti

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalChannel

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalClock

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalCounter

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalDebugLog

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalEvent

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalEventPair

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalException

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalFifo

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalGuest

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalHandle

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalInterrupt

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalIob

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalIommu

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalJob

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalPager

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalPmt

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalPort

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalProcess

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalProfile

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalResource

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalSocket

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalStream

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalThread

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalTimer

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalVcpu

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalVmar

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for OptionalVmo

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Pager

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Pmt

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Port

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Process

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Profile

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Resource

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Socket

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Stream

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Thread

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Timer

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Vcpu

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Vmar

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Vmo

Source§

impl<D: HandleDecoder + ?Sized> Decode<D> for Handle

Source§

impl<D: ?Sized> Decode<D> for ObjectType

Source§

impl<D: ?Sized> Decode<D> for Rights

Source§

impl<D: ?Sized> Decode<D> for Float32

Source§

impl<D: ?Sized> Decode<D> for Float64

Source§

impl<D: ?Sized> Decode<D> for Int16

Source§

impl<D: ?Sized> Decode<D> for Int32

Source§

impl<D: ?Sized> Decode<D> for Int64

Source§

impl<D: ?Sized> Decode<D> for Uint16

Source§

impl<D: ?Sized> Decode<D> for Uint32

Source§

impl<D: ?Sized> Decode<D> for Uint64