Trait Decode

Source
pub unsafe trait Decode<D: ?Sized>: Wire {
    // 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§

Source

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§

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) -> Result<(), DecodeError>

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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