[][src]Trait pb_jelly::Message

pub trait Message: PartialEq + Default + Debug + Any {
    fn compute_size(&self) -> usize;
fn serialize<W: PbBufferWriter>(&self, w: &mut W) -> Result<()>;
fn deserialize<B: PbBufferReader>(&mut self, r: &mut B) -> Result<()>; 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> { ... } }

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

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.

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

Serializes the message to the writer.

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

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

Loading content...

Provided methods

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.

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

Helper method for serializing a message to a [Vec].

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.

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.

Loading content...

Implementations on Foreign Types

impl<T: Message> Message for Option<T>[src]

impl Message for u32[src]

impl Message for i32[src]

impl Message for u64[src]

impl Message for i64[src]

impl Message for f32[src]

impl Message for f64[src]

impl Message for bool[src]

impl Message for Vec<u8>[src]

impl Message for String[src]

impl Message for ()[src]

impl Message for [u8; 0][src]

impl Message for [u8; 1][src]

impl Message for [u8; 2][src]

impl Message for [u8; 3][src]

impl Message for [u8; 4][src]

impl Message for [u8; 5][src]

impl Message for [u8; 6][src]

impl Message for [u8; 7][src]

impl Message for [u8; 8][src]

impl Message for [u8; 9][src]

impl Message for [u8; 10][src]

impl Message for [u8; 11][src]

impl Message for [u8; 12][src]

impl Message for [u8; 13][src]

impl Message for [u8; 14][src]

impl Message for [u8; 15][src]

impl Message for [u8; 16][src]

impl Message for [u8; 17][src]

impl Message for [u8; 18][src]

impl Message for [u8; 19][src]

impl Message for [u8; 20][src]

impl Message for [u8; 21][src]

impl Message for [u8; 22][src]

impl Message for [u8; 23][src]

impl Message for [u8; 24][src]

impl Message for [u8; 25][src]

impl Message for [u8; 26][src]

impl Message for [u8; 27][src]

impl Message for [u8; 28][src]

impl Message for [u8; 29][src]

impl Message for [u8; 30][src]

impl Message for [u8; 31][src]

impl Message for [u8; 32][src]

Loading content...

Implementors

impl Message for Fixed32[src]

impl Message for Fixed64[src]

impl Message for Sfixed32[src]

impl Message for Sfixed64[src]

impl Message for Signed32[src]

impl Message for Signed64[src]

impl<B: PbBuffer + PartialEq> Message for Lazy<B>[src]

impl<T, E> Message for T where
    T: TryFrom<i32, Error = E> + Into<i32> + ProtoEnum,
    E: Debug
[src]

Loading content...