Skip to main content

PayloadCodec

Trait PayloadCodec 

pub trait PayloadCodec: Sized {
    // Required methods
    fn encode(&self, out: &mut PayloadWriter);
    fn decode(input: &mut PayloadReader<'_>) -> Result<Self, PayloadDecodeError>;
}
Expand description

A value with a payload form: the pure codec of a typed payload. Both functions see only the buffer, never a Host; decode must leave the reader just past the value and must not keep any of its input.

Required Methods§

fn encode(&self, out: &mut PayloadWriter)

Writes the value. A failure is recorded on the writer.

fn decode(input: &mut PayloadReader<'_>) -> Result<Self, PayloadDecodeError>

Reads one value, leaving any following bytes to the caller.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl PayloadCodec for String

At most PAYLOAD_MAX_STRING_BYTES UTF-8 bytes.

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<String, PayloadDecodeError>

§

impl PayloadCodec for bool

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<bool, PayloadDecodeError>

§

impl PayloadCodec for f32

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<f32, PayloadDecodeError>

§

impl PayloadCodec for f64

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<f64, PayloadDecodeError>

§

impl PayloadCodec for i8

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<i8, PayloadDecodeError>

§

impl PayloadCodec for i16

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<i16, PayloadDecodeError>

§

impl PayloadCodec for i32

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<i32, PayloadDecodeError>

§

impl PayloadCodec for i64

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<i64, PayloadDecodeError>

§

impl PayloadCodec for u8

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<u8, PayloadDecodeError>

§

impl PayloadCodec for u16

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<u16, PayloadDecodeError>

§

impl<T> PayloadCodec for Box<T>
where T: PayloadCodec,

The boxed value’s own form: what lets a type hold itself.

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<Box<T>, PayloadDecodeError>

§

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

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode( input: &mut PayloadReader<'_>, ) -> Result<Option<T>, PayloadDecodeError>

§

impl<T> PayloadCodec for Vec<T>
where T: PayloadCodec,

At most PAYLOAD_MAX_LIST_ENTRIES entries; a schema with another bound calls PayloadReader::list itself.

§

fn encode(&self, out: &mut PayloadWriter)

§

fn decode(input: &mut PayloadReader<'_>) -> Result<Vec<T>, PayloadDecodeError>

Implementors§