Trait pb_jelly::Message

source ·
pub trait Message: PartialEq + Default + Debug + Any {
    // Required methods
    fn compute_size(&self) -> usize;
    fn serialize<W: PbBufferWriter>(&self, w: &mut W) -> Result<()>;
    fn deserialize<B: PbBufferReader>(&mut self, r: &mut B) -> Result<()>;

    // Provided methods
    fn descriptor(&self) -> Option<MessageDescriptor> { ... }
    fn compute_grpc_slices_size(&self) -> usize { ... }
    fn serialize_to_vec(&self) -> Vec<u8> { ... }
    fn serialize_to_writer<W: Write>(&self, writer: &mut W) -> Result<()> { ... }
    fn deserialize_from_slice(slice: &[u8]) -> Result<Self> { ... }
}
Expand description

Trait implemented by all the messages defined in proto files and base datatypes like string, bytes, etc. The exact details of this trait is implemented for messages and base types can be found at - https://developers.google.com/protocol-buffers/docs/encoding

Required Methods§

source

fn compute_size(&self) -> usize

Computes the number of bytes a message will take when serialized. This does not include number of bytes required for tag+wire_format or the bytes used to represent length of the message in case of LengthDelimited messages/types.

source

fn serialize<W: PbBufferWriter>(&self, w: &mut W) -> Result<()>

Serializes the message to the writer.

source

fn deserialize<B: PbBufferReader>(&mut self, r: &mut B) -> Result<()>

Reads the message from the blob reader, copying as necessary.

Provided Methods§

source

fn descriptor(&self) -> Option<MessageDescriptor>

Returns the MessageDescriptor for this message, if this is not a primitive type.

source

fn compute_grpc_slices_size(&self) -> usize

Computes the number of bytes in all grpc slices. This information is used to optimize memory allocations in zero-copy encoding.

source

fn serialize_to_vec(&self) -> Vec<u8>

Helper method for serializing a message to a Vec.

source

fn serialize_to_writer<W: Write>(&self, writer: &mut W) -> Result<()>

Helper method for serializing a message to an arbitrary Write.

If there are Lazy fields in the message, their contents will be copied out.

source

fn deserialize_from_slice(slice: &[u8]) -> Result<Self>

Helper method for deserializing a message from a u8 slice.

This will error if there are any Lazy fields in the message.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Message for bool

source§

impl Message for f32

source§

impl Message for f64

source§

impl Message for i32

source§

impl Message for i64

source§

impl Message for u32

source§

impl Message for u64

source§

impl Message for ()

source§

impl Message for String

source§

impl Message for Vec<u8>

source§

impl Message for CompactString

source§

impl Message for [u8; 0]

source§

impl Message for [u8; 1]

source§

impl Message for [u8; 2]

source§

impl Message for [u8; 3]

source§

impl Message for [u8; 4]

source§

impl Message for [u8; 5]

source§

impl Message for [u8; 6]

source§

impl Message for [u8; 7]

source§

impl Message for [u8; 8]

source§

impl Message for [u8; 9]

source§

impl Message for [u8; 10]

source§

impl Message for [u8; 11]

source§

impl Message for [u8; 12]

source§

impl Message for [u8; 13]

source§

impl Message for [u8; 14]

source§

impl Message for [u8; 15]

source§

impl Message for [u8; 16]

source§

impl Message for [u8; 17]

source§

impl Message for [u8; 18]

source§

impl Message for [u8; 19]

source§

impl Message for [u8; 20]

source§

impl Message for [u8; 21]

source§

impl Message for [u8; 22]

source§

impl Message for [u8; 23]

source§

impl Message for [u8; 24]

source§

impl Message for [u8; 25]

source§

impl Message for [u8; 26]

source§

impl Message for [u8; 27]

source§

impl Message for [u8; 28]

source§

impl Message for [u8; 29]

source§

impl Message for [u8; 30]

source§

impl Message for [u8; 31]

source§

impl Message for [u8; 32]

source§

impl<T: Message> Message for Option<T>

Implementors§