jetstream_wireformat

Trait WireFormat

pub trait WireFormat: Sized + Send {
    // Required methods
    fn byte_size(&self) -> u32;
    fn encode<W: Write>(&self, writer: &mut W) -> Result<()>;
    fn decode<R: Read>(reader: &mut R) -> Result<Self>;
}

A type that can be encoded on the wire using the 9P protocol.

Required Methods

fn byte_size(&self) -> u32

Returns the number of bytes necessary to fully encode self.

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encodes self into writer.

fn decode<R: Read>(reader: &mut R) -> Result

Decodes Self from reader.

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

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for f32

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for f64

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for i16

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for i32

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for i64

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for i128

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for isize

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for u8

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for u16

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for u32

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for u64

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for u128

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for ()

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, _writer: &mut W) -> Result<()>

fn decode<R: Read>(_reader: &mut R) -> Result

impl WireFormat for usize

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for String

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for Ipv4Addr

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for Ipv6Addr

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for SocketAddrV4

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for SocketAddrV6

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl WireFormat for Optionwhere T: WireFormat,

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

impl<T: WireFormat> WireFormat for Vec

fn byte_size(&self) -> u32

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

fn decode<R: Read>(reader: &mut R) -> Result

Implementors

impl WireFormat for Data

impl WireFormat for P9String