Trait Decode

pub unsafe trait Decode<D>: Wire
where D: ?Sized,
{ // Required method fn decode(slot: Slot<'_, Self>, decoder: &mut D) -> 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§

fn decode(slot: Slot<'_, Self>, decoder: &mut D) -> 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§

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

Implementors§

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<D> Decode<D> for WireOptionalString<'static>
where D: Decoder + ?Sized,

§

impl<D> Decode<D> for WireString<'static>
where D: Decoder + ?Sized,

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<D, T> Decode<D> for WireBox<'static, T>
where D: Decoder + ?Sized, T: Decode<D>,

§

impl<D, T> Decode<D> for WireFlexible<'static, T>
where D: Decoder + ?Sized, T: Decode<D>,

§

impl<D, T> Decode<D> for WireOptionalVector<'static, T>
where D: Decoder + ?Sized, T: Decode<D>,

§

impl<D, T> Decode<D> for WireVector<'static, T>
where D: Decoder + ?Sized, T: Decode<D>,

§

impl<D, T, E> Decode<D> for WireFlexibleResult<'static, T, E>
where D: Decoder + ?Sized, T: Decode<D>, E: Decode<D>,

§

impl<D, T, E> Decode<D> for WireResult<'static, T, E>
where D: Decoder + ?Sized, T: Decode<D>, E: Decode<D>,