Trait Wire

pub unsafe trait Wire: Sized + 'static {
    type Decoded<'de>: 'de;

    // Required method
    fn zero_padding(out: &mut MaybeUninit<Self>);
}
Expand description

A FIDL wire type.

§Safety

  • References to decoded data yielded by Self::Decoded<'de> must not outlive 'de.
  • zero_padding must write zeroes to (at least) the padding bytes of out.

Required Associated Types§

type Decoded<'de>: 'de

The decoded wire type, restricted to the 'de lifetime.

Required Methods§

fn zero_padding(out: &mut MaybeUninit<Self>)

Writes zeroes to the padding for this type, if any.

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 Wire for bool

§

type Decoded<'de> = bool

§

fn zero_padding(_: &mut MaybeUninit<bool>)

§

impl Wire for i8

§

type Decoded<'de> = i8

§

fn zero_padding(_: &mut MaybeUninit<i8>)

§

impl Wire for u8

§

type Decoded<'de> = u8

§

fn zero_padding(_: &mut MaybeUninit<u8>)

§

impl Wire for ()

§

type Decoded<'de> = ()

§

fn zero_padding(_: &mut MaybeUninit<()>)

§

impl Wire for WireMessageHeader

§

type Decoded<'de> = WireMessageHeader

§

fn zero_padding(_: &mut MaybeUninit<WireMessageHeader>)

§

impl<T, const N: usize> Wire for [T; N]
where T: Wire,

§

type Decoded<'de> = [<T as Wire>::Decoded<'de>; N]

§

fn zero_padding(out: &mut MaybeUninit<[T; N]>)

Implementors§

§

impl Wire for WireChannel

§

impl Wire for WireOptionalChannel

§

impl Wire for WireOptionalHandle

§

impl Wire for RawWireUnion

§

impl Wire for WireF32

§

type Decoded<'de> = WireF32

§

impl Wire for WireF64

§

type Decoded<'de> = WireF64

§

impl Wire for WireFrameworkError

§

impl Wire for WireI16

§

type Decoded<'de> = WireI16

§

impl Wire for WireI32

§

type Decoded<'de> = WireI32

§

impl Wire for WireI64

§

type Decoded<'de> = WireI64

§

impl Wire for WireOptionalString<'static>

§

type Decoded<'de> = WireOptionalString<'de>

§

impl Wire for WireString<'static>

§

type Decoded<'de> = WireString<'de>

§

impl Wire for WireTable<'static>

§

type Decoded<'de> = WireTable<'de>

§

impl Wire for WireU16

§

type Decoded<'de> = WireU16

§

impl Wire for WireU32

§

type Decoded<'de> = WireU32

§

impl Wire for WireU64

§

type Decoded<'de> = WireU64

§

impl Wire for WireHandle

§

type Decoded<'de> = WireHandle

§

impl Wire for WireEnvelope

§

impl<T> Wire for WireBox<'static, T>
where T: Wire,

§

type Decoded<'de> = WireBox<'de, <T as Wire>::Decoded<'de>>

§

impl<T> Wire for WireFlexible<'static, T>
where T: Wire,

§

type Decoded<'de> = WireFlexible<'de, <T as Wire>::Decoded<'de>>

§

impl<T> Wire for WireOptionalVector<'static, T>
where T: Wire,

§

type Decoded<'de> = WireOptionalVector<'de, <T as Wire>::Decoded<'de>>

§

impl<T> Wire for WireVector<'static, T>
where T: Wire,

§

type Decoded<'de> = WireVector<'de, <T as Wire>::Decoded<'de>>

§

impl<T, E> Wire for WireFlexibleResult<'static, T, E>
where T: Wire, E: Wire,

§

type Decoded<'de> = WireFlexibleResult<'de, <T as Wire>::Decoded<'de>, <E as Wire>::Decoded<'de>>

§

impl<T, E> Wire for WireResult<'static, T, E>
where T: Wire, E: Wire,

§

type Decoded<'de> = WireResult<'de, <T as Wire>::Decoded<'de>, <E as Wire>::Decoded<'de>>

§

impl<T, P> Wire for ClientEnd<T, P>
where T: Wire, P: 'static,

§

type Decoded<'de> = ClientEnd<<T as Wire>::Decoded<'de>, P>

§

impl<T, P> Wire for ServerEnd<T, P>
where T: Wire, P: 'static,

§

type Decoded<'de> = ServerEnd<<T as Wire>::Decoded<'de>, P>