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)
fn encode(&self, out: &mut PayloadWriter)
Writes the value. A failure is recorded on the writer.
fn decode(input: &mut PayloadReader<'_>) -> Result<Self, PayloadDecodeError>
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.
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
impl PayloadCodec for bool
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<bool, PayloadDecodeError>
§impl PayloadCodec for f32
impl PayloadCodec for f32
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<f32, PayloadDecodeError>
§impl PayloadCodec for f64
impl PayloadCodec for f64
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<f64, PayloadDecodeError>
§impl PayloadCodec for i8
impl PayloadCodec for i8
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<i8, PayloadDecodeError>
§impl PayloadCodec for i16
impl PayloadCodec for i16
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<i16, PayloadDecodeError>
§impl PayloadCodec for i32
impl PayloadCodec for i32
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<i32, PayloadDecodeError>
§impl PayloadCodec for i64
impl PayloadCodec for i64
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<i64, PayloadDecodeError>
§impl PayloadCodec for u8
impl PayloadCodec for u8
fn encode(&self, out: &mut PayloadWriter)
fn decode(input: &mut PayloadReader<'_>) -> Result<u8, PayloadDecodeError>
§impl PayloadCodec for u16
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.
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,
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.
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.