Trait Message

Source
pub trait Message {
    // Required methods
    fn encode(&self, buffer: &mut dyn Write) -> Result<()>;
    fn decode(buffer: &mut dyn Read) -> Result<Self>
       where Self: Sized;
    fn size(&self) -> usize;

    // Provided methods
    fn encode_with_hash(&self) -> Result<Vec<u8>>
       where Self: Sized { ... }
    fn decode_with_hash(buffer: &mut dyn Read) -> Result<Self>
       where Self: Sized { ... }
    fn hash() -> u64
       where Self: Sized { ... }
}
Expand description

A message that can be encoded and decoded according to the LCM protocol.

Required Methods§

Source

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Encodes a message into a buffer. Lcm uses a Vec<u8> with its capacity set to the value returned by [size()].

Source

fn decode(buffer: &mut dyn Read) -> Result<Self>
where Self: Sized,

Decodes a message from a buffer.

Source

fn size(&self) -> usize

Returns the number of bytes this message is expected to take when encoded.

Provided Methods§

Source

fn encode_with_hash(&self) -> Result<Vec<u8>>
where Self: Sized,

Encodes a message into a buffer, with the message hash at the beginning.

Source

fn decode_with_hash(buffer: &mut dyn Read) -> Result<Self>
where Self: Sized,

Decodes a message from a buffer, and also checks that the hash at the beginning is correct.

Source

fn hash() -> u64
where Self: Sized,

Returns the message hash for this type. Returns 0 for all primitive types. Generated Lcm types should implement this function.

Implementations on Foreign Types§

Source§

impl Message for bool

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for f32

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for f64

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for i8

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for i16

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for i32

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for i64

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for u8

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for u64

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Source§

impl Message for String

Source§

fn encode(&self, buffer: &mut dyn Write) -> Result<()>

Source§

fn decode(buffer: &mut dyn Read) -> Result<Self>

Source§

fn size(&self) -> usize

Implementors§