Trait EncodeMessage

Source
pub trait EncodeMessage {
    const WIRE_TYPE: WireType;

    // Required methods
    fn is_default(&self) -> bool;
    fn encoded_size(
        &mut self,
        field: Option<FieldOpt>,
        builder: &mut SizeBuilder,
    ) -> Result<(), EncodeError>;
    fn encode<B>(
        &mut self,
        field: Option<FieldOpt>,
        encoder: &mut MessageEncoder<B>,
    ) -> Result<(), EncodeError>
       where B: BytesWrite;

    // Provided method
    fn write_to_bytes(&mut self) -> Result<Vec<u8>, EncodeError> { ... }
}
Expand description

§Ignoring fields

if your call tells you a field number you need to write it even if you have the default value

You can only ignore writing fields if you wan’t

Required Associated Constants§

Source

const WIRE_TYPE: WireType

at the moment only used to check if this message can be packed

Required Methods§

Source

fn is_default(&self) -> bool

Source

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after encoding

The that get’s returned here needs to be the same as called in write

if fieldnum is set this means you need to write the tag

Source

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

In most cases before this is called encoded_size get’s called

The size that get’s computed in encoded_size must be the same as we get here

if fieldnum is set this means you need to write the tag to

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl EncodeMessage for &bool

Source§

const WIRE_TYPE: WireType = WireType::Varint

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &f32

Source§

const WIRE_TYPE: WireType = WireType::I32

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &f64

Source§

const WIRE_TYPE: WireType = WireType::I64

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &i32

Source§

const WIRE_TYPE: WireType = WireType::Varint

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &i64

Source§

const WIRE_TYPE: WireType = WireType::Varint

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &str

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &u32

Source§

const WIRE_TYPE: WireType = WireType::Varint

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &u64

Source§

const WIRE_TYPE: WireType = WireType::Varint

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &String

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for &[u8]

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, writer: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, writer: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for bool

Source§

const WIRE_TYPE: WireType = <&bool>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for f32

Source§

const WIRE_TYPE: WireType = <&f32>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for f64

Source§

const WIRE_TYPE: WireType = <&f64>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for i32

Source§

const WIRE_TYPE: WireType = <&i32>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for i64

Source§

const WIRE_TYPE: WireType = <&i64>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for u32

Source§

const WIRE_TYPE: WireType = <&u32>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for u64

Source§

const WIRE_TYPE: WireType = <&u64>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for String

Source§

const WIRE_TYPE: WireType = <&String>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for Vec<u8>

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl EncodeMessage for [u8]

Source§

const WIRE_TYPE: WireType = <&[u8]>::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<A, B> EncodeMessage for (A, B)

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<Bytes>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<Bytes>, ) -> Result<(), EncodeError>
where Bytes: BytesWrite,

Source§

impl<A, B, C> EncodeMessage for (A, B, C)

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<Bytes>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<Bytes>, ) -> Result<(), EncodeError>
where Bytes: BytesWrite,

Source§

impl<A, B, C, D> EncodeMessage for (A, B, C, D)

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<Bytes>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<Bytes>, ) -> Result<(), EncodeError>
where Bytes: BytesWrite,

Source§

impl<A, B, C, D, E> EncodeMessage for (A, B, C, D, E)

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<Bytes>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<Bytes>, ) -> Result<(), EncodeError>
where Bytes: BytesWrite,

Source§

impl<A, B, C, D, E, F> EncodeMessage for (A, B, C, D, E, F)

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<Bytes>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<Bytes>, ) -> Result<(), EncodeError>
where Bytes: BytesWrite,

Source§

impl<K, V> EncodeMessage for HashMap<K, V>
where for<'a> &'a K: EncodeMessage, V: EncodeMessage,

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<T> EncodeMessage for Option<T>
where T: EncodeMessage,

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<V> EncodeMessage for [V]
where V: EncodeMessage,

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<V> EncodeMessage for Vec<V>
where V: EncodeMessage,

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<V, const S: usize> EncodeMessage for [V; S]
where V: EncodeMessage,

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<V: EncodeMessage> EncodeMessage for &mut V

Source§

const WIRE_TYPE: WireType = V::WIRE_TYPE

Source§

fn is_default(&self) -> bool

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Source§

impl<const S: usize> EncodeMessage for [u8; S]

Source§

fn encoded_size( &mut self, field: Option<FieldOpt>, builder: &mut SizeBuilder, ) -> Result<(), EncodeError>

how big will the size be after writing

Source§

const WIRE_TYPE: WireType = WireType::Len

Source§

fn is_default(&self) -> bool

Source§

fn encode<B>( &mut self, field: Option<FieldOpt>, encoder: &mut MessageEncoder<B>, ) -> Result<(), EncodeError>
where B: BytesWrite,

Implementors§