Trait Packet

Source
pub trait Packet<B>: Sized
where B: PacketBytes,
{ type Header: PacketHeader; // Required methods fn header(&self) -> &Self::Header; fn header_mut(&mut self) -> &mut Self::Header; fn empty() -> Self; fn from_bytes_and_header(bytes: B, header: Self::Header) -> Result<Self>; fn into_bytes(self) -> B; }

Required Associated Types§

Required Methods§

Source

fn header(&self) -> &Self::Header

Source

fn header_mut(&mut self) -> &mut Self::Header

Source

fn empty() -> Self

Returns an empty header this is used internally by this crate.

§Important

body_len needs to return 0

Source

fn from_bytes_and_header(bytes: B, header: Self::Header) -> Result<Self>

The bytes.body() length should always be the same value has header.body_len()

Source

fn into_bytes(self) -> B

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.

Implementors§