Serializable

Trait Serializable 

Source
pub trait Serializable {
    // Required methods
    fn write<W: Write>(&self, w: &mut W) -> Result<()>;
    fn read<R: Read>(r: &mut R) -> Result<Self>
       where Self: Sized;

    // Provided methods
    fn read_bytes<R: Read, const N: usize>(r: &mut R) -> Result<[u8; N]> { ... }
    fn read_u8<R: Read>(r: &mut R) -> Result<u8> { ... }
    fn read_u16_le<R: Read>(r: &mut R) -> Result<u16> { ... }
    fn read_u64_le<R: Read>(r: &mut R) -> Result<u64> { ... }
    fn read_u32_le<R: Read>(r: &mut R) -> Result<u32> { ... }
    fn write_var_le_bytes32<W: Write>(w: &mut W, buf: &[u8]) -> Result<()> { ... }
    fn read_var_le_bytes32<R: Read>(r: &mut R) -> Result<Vec<u8>> { ... }
}

Required Methods§

Source

fn write<W: Write>(&self, w: &mut W) -> Result<()>

Source

fn read<R: Read>(r: &mut R) -> Result<Self>
where Self: Sized,

Provided Methods§

Source

fn read_bytes<R: Read, const N: usize>(r: &mut R) -> Result<[u8; N]>

Source

fn read_u8<R: Read>(r: &mut R) -> Result<u8>

Source

fn read_u16_le<R: Read>(r: &mut R) -> Result<u16>

Source

fn read_u64_le<R: Read>(r: &mut R) -> Result<u64>

Source

fn read_u32_le<R: Read>(r: &mut R) -> Result<u32>

Source

fn write_var_le_bytes32<W: Write>(w: &mut W, buf: &[u8]) -> Result<()>

Writes length-prefixed fields

Source

fn read_var_le_bytes32<R: Read>(r: &mut R) -> Result<Vec<u8>>

Reads length-prefixed fields

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 Serializable for SocketAddr

Source§

fn write<W: Write>(&self, w: &mut W) -> Result<()>

Source§

fn read<R: Read>(r: &mut R) -> Result<Self>
where Self: Sized,

Source§

impl<const N: usize> Serializable for [u8; N]

Source§

fn write<W: Write>(&self, w: &mut W) -> Result<()>

Source§

fn read<R: Read>(r: &mut R) -> Result<Self>
where Self: Sized,

Implementors§