pub trait Message:
    Debug
    + Send
    + Sync {
    // Required methods
    fn encoded_len(&self) -> usize;
    fn clear(&mut self);
    // Provided methods
    fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
       where Self: Sized { ... }
    fn encode_to_vec(&self) -> Vec<u8> ⓘ
       where Self: Sized { ... }
    fn encode_length_delimited(
        &self,
        buf: &mut impl BufMut,
    ) -> Result<(), EncodeError>
       where Self: Sized { ... }
    fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘ
       where Self: Sized { ... }
    fn decode(buf: impl Buf) -> Result<Self, DecodeError>
       where Self: Default { ... }
    fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
       where Self: Default { ... }
    fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
       where Self: Sized { ... }
    fn merge_length_delimited(
        &mut self,
        buf: impl Buf,
    ) -> Result<(), DecodeError>
       where Self: Sized { ... }
}Expand description
A Protocol Buffers message.
Required Methods§
Sourcefn encoded_len(&self) -> usize
 
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Provided Methods§
Sourcefn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
    Self: Sized,
 
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
    Self: Sized,
Encodes the message to a buffer.
An error will be returned if the buffer does not have sufficient capacity.
Sourcefn encode_to_vec(&self) -> Vec<u8> ⓘwhere
    Self: Sized,
 
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
    Self: Sized,
Encodes the message to a newly allocated buffer.
Sourcefn encode_length_delimited(
    &self,
    buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
    Self: Sized,
 
fn encode_length_delimited(
    &self,
    buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
    Self: Sized,
Encodes the message with a length-delimiter to a buffer.
An error will be returned if the buffer does not have sufficient capacity.
Sourcefn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
    Self: Sized,
 
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
    Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Sourcefn decode(buf: impl Buf) -> Result<Self, DecodeError>where
    Self: Default,
 
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
    Self: Default,
Decodes an instance of the message from a buffer.
The entire buffer will be consumed.
Sourcefn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
    Self: Default,
 
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
    Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Sourcefn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
    Self: Sized,
 
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
    Self: Sized,
Decodes an instance of the message from a buffer, and merges it into self.
The entire buffer will be consumed.
Sourcefn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
    Self: Sized,
 
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
    Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into self.