EncodeOption

Trait EncodeOption 

Source
pub unsafe trait EncodeOption<W, E>: Sized
where W: Constrained, E: ?Sized,
{ // Required method fn encode_option( this: Option<Self>, encoder: &mut E, out: &mut MaybeUninit<W>, constraint: <W as Constrained>::Constraint, ) -> Result<(), EncodeError>; }
Expand description

Encodes an optional value.

§Safety

encode_option must initialize all non-padding bytes of out.

Required Methods§

Source

fn encode_option( this: Option<Self>, encoder: &mut E, out: &mut MaybeUninit<W>, constraint: <W as Constrained>::Constraint, ) -> Result<(), EncodeError>

Encodes this optional value into an encoder and output.

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<'a, W, E, T> EncodeOption<WireOptionalVector<'static, W>, E> for &'a [T]
where W: Constrained + Wire, E: Encoder + ?Sized, T: Encode<W, E>, &'a T: Encode<W, E>,

Source§

fn encode_option( this: Option<&'a [T]>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalVector<'static, W>>, constraint: (u64, <W as Constrained>::Constraint), ) -> Result<(), EncodeError>

Source§

impl<'a, W, E, T> EncodeOption<WireOptionalVector<'static, W>, E> for &'a Vec<T>
where W: Constrained + Wire, E: Encoder + ?Sized, T: Encode<W, E>, &'a T: Encode<W, E>,

Source§

fn encode_option( this: Option<&'a Vec<T>>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalVector<'static, W>>, constraint: (u64, <W as Constrained>::Constraint), ) -> Result<(), EncodeError>

Source§

impl<'a, W, E, T> EncodeOption<W, E> for &'a Box<T>
where W: Constrained, &'a T: EncodeOption<W, E>, E: ?Sized,

Source§

fn encode_option( this: Option<&'a Box<T>>, encoder: &mut E, out: &mut MaybeUninit<W>, constraint: <W as Constrained>::Constraint, ) -> Result<(), EncodeError>

Source§

impl<'a, W, E, T, const N: usize> EncodeOption<WireOptionalVector<'static, W>, E> for &'a [T; N]
where W: Constrained + Wire, E: Encoder + ?Sized, T: Encode<W, E>, &'a T: Encode<W, E>,

Source§

fn encode_option( this: Option<&'a [T; N]>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalVector<'static, W>>, constraint: (u64, <W as Constrained>::Constraint), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, bool>, E> for &bool
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&bool>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, bool>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, bool>, E> for bool
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<bool>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, bool>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, i8>, E> for &i8
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&i8>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, i8>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, i8>, E> for i8
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<i8>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, i8>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, u8>, E> for &u8
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&u8>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, u8>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, u8>, E> for u8
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<u8>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, u8>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, ()>, E> for &()
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&()>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, ()>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, ()>, E> for ()
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<()>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, ()>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireF32>, E> for &f32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&f32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireF32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireF32>, E> for f32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<f32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireF32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireF64>, E> for &f64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&f64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireF64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireF64>, E> for f64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<f64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireF64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI16>, E> for &i16
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&i16>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI16>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI16>, E> for i16
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<i16>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI16>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI32>, E> for &i32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&i32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI32>, E> for i32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<i32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI64>, E> for &i64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&i64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireI64>, E> for i64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<i64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireI64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU16>, E> for &u16
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&u16>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU16>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU16>, E> for u16
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<u16>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU16>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU32>, E> for &u32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&u32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU32>, E> for u32
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<u32>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU32>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU64>, E> for &u64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&u64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireBox<'static, WireU64>, E> for u64
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<u64>, encoder: &mut E, out: &mut MaybeUninit<WireBox<'static, WireU64>>, constraint: (), ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireOptionalString<'static>, E> for &str
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&str>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalString<'static>>, _constraint: u64, ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireOptionalString<'static>, E> for &String
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<&String>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalString<'static>>, constraint: u64, ) -> Result<(), EncodeError>

Source§

impl<E> EncodeOption<WireOptionalString<'static>, E> for String
where E: Encoder + ?Sized,

Source§

fn encode_option( this: Option<String>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalString<'static>>, constraint: u64, ) -> Result<(), EncodeError>

Source§

impl<W, E, T> EncodeOption<WireOptionalVector<'static, W>, E> for Vec<T>
where W: Constrained + Wire, E: Encoder + ?Sized, T: Encode<W, E>,

Source§

fn encode_option( this: Option<Vec<T>>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalVector<'static, W>>, constraint: <WireOptionalVector<'static, W> as Constrained>::Constraint, ) -> Result<(), EncodeError>

Source§

impl<W, E, T> EncodeOption<W, E> for Box<T>
where W: Constrained, T: EncodeOption<W, E>, E: ?Sized,

Source§

fn encode_option( this: Option<Box<T>>, encoder: &mut E, out: &mut MaybeUninit<W>, constraint: <W as Constrained>::Constraint, ) -> Result<(), EncodeError>

Source§

impl<W, E, T, const N: usize> EncodeOption<WireOptionalVector<'static, W>, E> for [T; N]
where W: Constrained + Wire, E: Encoder + ?Sized, T: Encode<W, E>,

Source§

fn encode_option( this: Option<[T; N]>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalVector<'static, W>>, constraint: (u64, <W as Constrained>::Constraint), ) -> Result<(), EncodeError>

Implementors§

Source§

impl<'a, W, E, P, T> EncodeOption<ClientEnd<P, W>, E> for &'a ClientEnd<P, T>
where P: 'static, &'a T: EncodeOption<W, E>, W: Constrained<Constraint = ()>, E: ?Sized,

Source§

impl<'a, W, E, P, T> EncodeOption<ServerEnd<P, W>, E> for &'a ServerEnd<P, T>
where P: 'static, &'a T: EncodeOption<W, E>, W: Constrained<Constraint = ()>, E: ?Sized,

Source§

impl<E> EncodeOption<WireOptionalBti, E> for Bti
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalChannel, E> for Channel
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalClock, E> for Clock
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalCounter, E> for Counter
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalDebugLog, E> for DebugLog
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalEvent, E> for Event
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalEventPair, E> for EventPair
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalException, E> for Exception
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalFifo, E> for Fifo
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalGuest, E> for Guest
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalHandle, E> for Handle
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalInterrupt, E> for Interrupt
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalIob, E> for Iob
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalIommu, E> for Iommu
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalJob, E> for Job
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalPager, E> for Pager
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalPmt, E> for Pmt
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalPort, E> for Port
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalProcess, E> for Process
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalProfile, E> for Profile
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalResource, E> for Resource
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalSocket, E> for Socket
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalStream, E> for Stream
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalThread, E> for Thread
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalTimer, E> for Timer
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalVcpu, E> for Vcpu
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalVmar, E> for Vmar
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireOptionalVmo, E> for Vmo
where E: HandleEncoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireF32>, E> for &WireF32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireF32>, E> for WireF32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireF64>, E> for &WireF64
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireF64>, E> for WireF64
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI16>, E> for &WireI16
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI16>, E> for WireI16
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI32>, E> for &WireI32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI32>, E> for WireI32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI64>, E> for &WireI64
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireI64>, E> for WireI64
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU16>, E> for &WireU16
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU16>, E> for WireU16
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU32>, E> for &WireU32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU32>, E> for WireU32
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU64>, E> for &WireU64
where E: Encoder + ?Sized,

Source§

impl<E> EncodeOption<WireBox<'static, WireU64>, E> for WireU64
where E: Encoder + ?Sized,

Source§

impl<W, E, P, T> EncodeOption<ClientEnd<P, W>, E> for ClientEnd<P, T>
where P: 'static, T: EncodeOption<W, E>, W: Constrained<Constraint = ()>, E: ?Sized,

Source§

impl<W, E, P, T> EncodeOption<ServerEnd<P, W>, E> for ServerEnd<P, T>
where P: 'static, T: EncodeOption<W, E>, W: Constrained<Constraint = ()>, E: ?Sized,