Skip to main content

Encode

Trait Encode 

Source
pub trait Encode: Debug {
    type Error: From<Error> + Debug;

    // Required methods
    fn encode_len(&self) -> Result<usize, Self::Error>;
    fn encode(&self, buff: &mut [u8]) -> Result<usize, Self::Error>;
}
Expand description

Encode trait implemented for binary encodable objects

Required Associated Types§

Source

type Error: From<Error> + Debug

Error type returned on parse error

Required Methods§

Source

fn encode_len(&self) -> Result<usize, Self::Error>

Calculate expected encoded length for an object

Source

fn encode(&self, buff: &mut [u8]) -> Result<usize, Self::Error>

Encode method writes object data to the provided writer

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl Encode for &str

Encode implementation for str

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <&str as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <&str as Encode>::Error>

Source§

impl Encode for f32

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <f32 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <f32 as Encode>::Error>

Source§

impl Encode for f64

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <f64 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <f64 as Encode>::Error>

Source§

impl Encode for i8

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <i8 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <i8 as Encode>::Error>

Source§

impl Encode for i16

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <i16 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <i16 as Encode>::Error>

Source§

impl Encode for i32

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <i32 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <i32 as Encode>::Error>

Source§

impl Encode for i64

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <i64 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <i64 as Encode>::Error>

Source§

impl Encode for u8

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <u8 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <u8 as Encode>::Error>

Source§

impl Encode for u16

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <u16 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <u16 as Encode>::Error>

Source§

impl Encode for u32

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <u32 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <u32 as Encode>::Error>

Source§

impl Encode for u64

Source§

type Error = Error

Source§

fn encode_len(&self) -> Result<usize, <u64 as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <u64 as Encode>::Error>

Source§

impl<T, const N: usize> Encode for Vec<T, N>
where T: Encode, <T as Encode>::Error: From<Error> + Debug,

Available on crate feature heapless only.

Encode implementation for heapless heapless::Vec containing encodable types

Source§

type Error = <T as Encode>::Error

Source§

fn encode_len(&self) -> Result<usize, <Vec<T, N> as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <Vec<T, N> as Encode>::Error>

Source§

impl<T, const N: usize> Encode for [T; N]
where T: Encode, <T as Encode>::Error: From<Error> + Debug,

Blanket Encode impl for arrays of encodable types

Source§

type Error = <T as Encode>::Error

Source§

fn encode_len(&self) -> Result<usize, <[T; N] as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <[T; N] as Encode>::Error>

Source§

impl<T> Encode for &[T]
where T: Encode, <T as Encode>::Error: From<Error> + Debug,

Blanket Encode impl for slices of encodable types

Source§

type Error = <T as Encode>::Error

Source§

fn encode_len(&self) -> Result<usize, <&[T] as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <&[T] as Encode>::Error>

Source§

impl<T> Encode for Vec<T>
where T: Encode, <T as Encode>::Error: From<Error> + Debug,

Available on crate feature alloc only.

Encode implementation for std/alloc alloc::vec::Vec containing encodable types

Source§

type Error = <T as Encode>::Error

Source§

fn encode_len(&self) -> Result<usize, <Vec<T> as Encode>::Error>

Source§

fn encode(&self, buff: &mut [u8]) -> Result<usize, <Vec<T> as Encode>::Error>

Implementors§