Skip to main content

Message

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

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

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

Implementors§