pub trait MessageEncode<T, R>: Sized {
// Required methods
fn write_message(item: T, writer: MessageWriter<'_, '_, R>);
fn compute_message_size(item: &mut T, sizer: MessageSizer<'_>);
}
Expand description
The MessageEncode
trait provides a message encoder for type T
.
R
is the external resource type, which allows encoding objects with
non-protobuf resources such as file descriptors. Most implementors of this
trait will be generic over all R
.
Required Methods§
Sourcefn write_message(item: T, writer: MessageWriter<'_, '_, R>)
fn write_message(item: T, writer: MessageWriter<'_, '_, R>)
Writes item
as a message.
Sourcefn compute_message_size(item: &mut T, sizer: MessageSizer<'_>)
fn compute_message_size(item: &mut T, sizer: MessageSizer<'_>)
Computes the size of item
as a message.
Encoding will panic if the write_message
call writes a different
number of bytes than computed by this call.
Takes a mut reference to allow mutating/stabilizing the value so that
the subsequent call to write_message
acts on the same value as this
call.
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.