Trait Parcel

Source
pub trait Parcel: Sized {
    const TYPE_NAME: &'static str;

    // Required methods
    fn read_field(
        read: &mut dyn Read,
        settings: &Settings,
        hints: &mut Hints,
    ) -> Result<Self, Error>;
    fn write_field(
        &self,
        write: &mut dyn Write,
        settings: &Settings,
        hints: &mut Hints,
    ) -> Result<(), Error>;

    // Provided methods
    fn read(read: &mut dyn Read, settings: &Settings) -> Result<Self, Error> { ... }
    fn write(
        &self,
        write: &mut dyn Write,
        settings: &Settings,
    ) -> Result<(), Error> { ... }
    fn into_stream(self, settings: &Settings) -> Result<Cursor<Vec<u8>>, Error> { ... }
    fn from_raw_bytes(bytes: &[u8], settings: &Settings) -> Result<Self, Error> { ... }
    fn field_from_raw_bytes(
        bytes: &[u8],
        settings: &Settings,
        hints: &mut Hints,
    ) -> Result<Self, Error> { ... }
    fn raw_bytes(&self, settings: &Settings) -> Result<Vec<u8>, Error> { ... }
    fn raw_bytes_field(
        &self,
        settings: &Settings,
        hints: &mut Hints,
    ) -> Result<Vec<u8>, Error> { ... }
    fn type_name(&self) -> &'static str { ... }
}
Expand description

A value which can be read and written.

All of the expected standard Rust types implement this.

Types that implement Parcel include (not exhaustive):

  • The Rust primitive types
    • u8, i8, u16, i16u64
    • bool, char
    • f32, f64
    • Tuples
      • (T1) where T1: Parcel
      • (T1, T2) where T1: Parcel, T2: Parcel
      • (T1, T2, ... Tn) where T1: Parcel, T2: Parcel, ... Tn: Parcel
    • Arrays
      • [T; 0] where T: Parcel
      • [T; 1] where T: Parcel
      • [T; 2] where T: Parcel
      • [T; 32] where T: Parcel
      • [T; 40] where T: Parcel
      • [T; 42] where T: Parcel
      • [T; 64] where T: Parcel
      • [T; 1024] where T: Parcel
    • String
    • Option<T: Parcel>
    • Box<T: Parcel>
    • std::ops::Range<T: Parcel>
    • Smart pointers
      • std::rc::Rc
      • std::sync::Arc
    • std::collections
      • Vec<T: Parcel>
      • VecDeque<T: Parcel>
      • HashMap<T: Parcel>
      • BTreeMap<T: Parcel>

Required Associated Constants§

Source

const TYPE_NAME: &'static str

The textual name of the type.

Required Methods§

Source

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Reads a value from a stream.

Parameters:

  • hints - a list of hints accessible by the current parcel chain only.

Blocks until a value is received.

Source

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Writes a value to a stream.

Provided Methods§

Source

fn read(read: &mut dyn Read, settings: &Settings) -> Result<Self, Error>

Reads a new item with a fresh set of hints.

Blocks until a value is received.

Source

fn write(&self, write: &mut dyn Write, settings: &Settings) -> Result<(), Error>

Writes a value to a stream.

Source

fn into_stream(self, settings: &Settings) -> Result<Cursor<Vec<u8>>, Error>

Convers the value into a byte stream that implements std::io::Read.

Source

fn from_raw_bytes(bytes: &[u8], settings: &Settings) -> Result<Self, Error>

Parses a new value from its raw byte representation.

Returns Err if the bytes represent an invalid value.

Source

fn field_from_raw_bytes( bytes: &[u8], settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Parses a new value from its raw byte representation.

Returns Err if the bytes represent an invalid value.

Source

fn raw_bytes(&self, settings: &Settings) -> Result<Vec<u8>, Error>

Gets the raw byte representation of the value.

Source

fn raw_bytes_field( &self, settings: &Settings, hints: &mut Hints, ) -> Result<Vec<u8>, Error>

Gets the raw bytes of this type as a field of a larger type.

Source

fn type_name(&self) -> &'static str

Gets the name of the type; Parcel::TYPE_NAME.

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

Source§

const TYPE_NAME: &'static str = "bool"

Source§

fn read_field( read: &mut dyn Read, _: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, _: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for char

Source§

const TYPE_NAME: &'static str = "char"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for f32

Source§

const TYPE_NAME: &'static str = "f32"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for f64

Source§

const TYPE_NAME: &'static str = "f64"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for i8

Source§

const TYPE_NAME: &'static str = "i8"

Source§

fn read_field( read: &mut dyn Read, _: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, _: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for i16

Source§

const TYPE_NAME: &'static str = "i16"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for i32

Source§

const TYPE_NAME: &'static str = "i32"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for i64

Source§

const TYPE_NAME: &'static str = "i64"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for u8

Source§

const TYPE_NAME: &'static str = "u8"

Source§

fn read_field( read: &mut dyn Read, _: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, _: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for u16

Source§

const TYPE_NAME: &'static str = "u16"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for u32

Source§

const TYPE_NAME: &'static str = "u32"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for u64

Source§

const TYPE_NAME: &'static str = "u64"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for CString

Source§

const TYPE_NAME: &'static str = "CString"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _hints: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for String

Source§

const TYPE_NAME: &'static str = "String"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Source§

impl Parcel for Uuid

Source§

const TYPE_NAME: &'static str = "Uuid"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, _: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<K, V> Parcel for BTreeMap<K, V>
where K: Parcel + Ord, V: Parcel,

Source§

const TYPE_NAME: &'static str = "BTreeMap < K, V >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<K, V> Parcel for HashMap<K, V>
where K: Parcel + Hash + Eq, V: Parcel,

Source§

const TYPE_NAME: &'static str = "HashMap < K, V >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1> Parcel for (T0, T1)
where T0: Parcel, T1: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2> Parcel for (T0, T1, T2)
where T0: Parcel, T1: Parcel, T2: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3> Parcel for (T0, T1, T2, T3)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4> Parcel for (T0, T1, T2, T3, T4)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5> Parcel for (T0, T1, T2, T3, T4, T5)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Parcel for (T0, T1, T2, T3, T4, T5, T6)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel, T6: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel, T6: Parcel, T7: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel, T9: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel, T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel, T9: Parcel, T10: Parcel,

Source§

const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 1]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 1]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 2]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 2]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 3]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 3]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 4]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 4]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 5]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 5]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 6]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 6]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 7]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 7]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 8]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 8]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 9]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 9]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 10]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 10]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 11]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 11]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 12]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 12]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 13]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 13]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 14]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 14]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 15]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 15]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 16]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 16]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 17]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 17]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 18]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 18]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 19]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 19]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 20]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 20]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 21]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 21]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 22]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 22]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 23]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 23]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 24]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 24]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 25]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 25]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 26]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 26]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 27]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 27]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 28]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 28]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 29]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 29]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 30]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 30]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 31]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 31]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 32]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 32]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 40]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 40]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 42]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 42]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 48]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 48]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 64]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 64]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 80]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 80]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 120]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 120]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 128]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 128]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 256]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 256]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 500]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 500]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 512]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 512]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 1000]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 1000]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 1024]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 1024]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 4096]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 4096]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for [T; 65535]
where T: Copy + Parcel,

Source§

const TYPE_NAME: &'static str = "[T; 0xffff]"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for BTreeSet<T>
where T: Parcel + Ord,

Source§

const TYPE_NAME: &'static str = "BTreeSet < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for LinkedList<T>
where T: Parcel,

Source§

const TYPE_NAME: &'static str = "LinkedList < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for VecDeque<T>
where T: Parcel,

Source§

const TYPE_NAME: &'static str = "VecDeque < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for PhantomData<T>

Source§

const TYPE_NAME: &'static str = "PhantomData<T>"

Source§

fn read_field( _: &mut dyn Read, _: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, _: &mut dyn Write, _: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for Range<T>
where T: Parcel,

Source§

const TYPE_NAME: &'static str = "Range"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T> Parcel for HashSet<T>
where T: Parcel + Hash + Eq,

Source§

const TYPE_NAME: &'static str = "HashSet < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Source§

impl<T: Parcel> Parcel for Option<T>

Source§

const TYPE_NAME: &'static str = "Option<T>"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T: Parcel> Parcel for Rc<T>

Source§

const TYPE_NAME: &'static str = "Rc < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T: Parcel> Parcel for Arc<T>

Source§

const TYPE_NAME: &'static str = "Arc < T >"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, _: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, _: &mut Hints, ) -> Result<(), Error>

Source§

impl<T: Parcel> Parcel for Vec<T>

Source§

const TYPE_NAME: &'static str = "Vec<T>"

Source§

fn read_field( read: &mut dyn Read, settings: &Settings, hints: &mut Hints, ) -> Result<Self, Error>

Source§

fn write_field( &self, write: &mut dyn Write, settings: &Settings, hints: &mut Hints, ) -> Result<(), Error>

Implementors§

Source§

impl Parcel for Unimplemented

Source§

const TYPE_NAME: &'static str = "Unimplemented"

Source§

impl<H> Parcel for H
where H: HighLevel,

Source§

const TYPE_NAME: &'static str = "HighLevel"

Source§

impl<S: Integer> Parcel for protocol::types::String<S>

Source§

const TYPE_NAME: &'static str = "protocol::String<S>"

Source§

impl<S: Integer, T: Parcel> Parcel for protocol::types::Vec<S, T>

Source§

const TYPE_NAME: &'static str = "protocol::Vec<S,T>"

Source§

impl<T, ToSizeOfType> Parcel for Aligned<T, ToSizeOfType>
where T: Parcel, ToSizeOfType: Sized,

Source§

const TYPE_NAME: &'static str = "Aligned"