jetstream_wireformat

Trait WireFormat

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

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<()>where Self: Sized,

Encodes self into writer.

fn decode<R: Read>(reader: &mut R) -> Resultwhere Self: Sized,

Decodes Self from reader.

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 Box

fn byte_size(&self) -> u32

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

fn decode<R: Read>(reader: &mut R) -> Resultwhere Self: Sized,

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

impl<T, I> WireFormat for Wrapped<T, I>where T: Send + AsRef, I: WireFormat + Into,