Skip to main content

Decode

Trait Decode 

Source
pub unsafe trait Decode<D>: Constrained
where D: ?Sized,
{ // 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> Decode<D> for bool
where D: ?Sized,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn decode( slot: Slot<'_, [T; N]>, decoder: &mut D, constraint: <T as Constrained>::Constraint, ) -> Result<(), DecodeError>

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

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 FlexibleResult<'de, T, E>
where D: Decoder<'de> + ?Sized, T: Decode<D, Constraint = ()>, E: Decode<D, Constraint = ()>,

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<D> Decode<D> for Bti
where D: HandleDecoder + ?Sized,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<D> Decode<D> for Epitaph
where D: ?Sized,

Source§

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

Source§

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

Source§

impl<D> Decode<D> for FrameworkError
where D: ?Sized,

Source§

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

Source§

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

Source§

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

Source§

impl<D> Decode<D> for MessageHeader
where D: ?Sized,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<D, P, T> Decode<D> for ClientEnd<P, T>
where P: 'static, T: Decode<D, Constraint = ()>, D: ?Sized,

Source§

impl<D, P, T> Decode<D> for ServerEnd<P, T>
where P: 'static, T: Decode<D, Constraint = ()>, D: ?Sized,