Trait musli::en::EncodeBytes

source ·
pub trait EncodeBytes<M> {
    // Required method
    fn encode_bytes<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
       where E: Encoder<Mode = M>;
}
Expand description

Trait governing how a type is encoded as bytes.

This is typically used automatically through the #[musli(bytes)] attribute through the Encode derive.

§Examples

use musli::Encode;

#[derive(Encode)]
struct MyType {
    #[musli(bytes)]
    data: [u8; 128],
}

Implementing manually:

use musli::{Encode, Encoder};
use musli::en::EncodeBytes;

struct MyType {
    data: [u8; 128],
}

impl<M> Encode<M> for MyType {
    fn encode<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
    where
        E: Encoder,
    {
        self.data.encode_bytes(cx, encoder)
    }
}

Required Methods§

source

fn encode_bytes<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

Encode the given output as bytes.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<M> EncodeBytes<M> for Cow<'_, [u8]>

Available on crate feature alloc only.
source§

fn encode_bytes<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<M> EncodeBytes<M> for Box<[u8]>

Available on crate feature alloc only.
source§

fn encode_bytes<E>(&self, _: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<M> EncodeBytes<M> for VecDeque<u8>

Available on crate feature alloc only.
source§

fn encode_bytes<E>(&self, _: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<M> EncodeBytes<M> for Vec<u8>

Available on crate feature alloc only.
source§

fn encode_bytes<E>(&self, _: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<M> EncodeBytes<M> for [u8]

source§

fn encode_bytes<E>(&self, _: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<T, M> EncodeBytes<M> for &T
where T: ?Sized + EncodeBytes<M>,

source§

fn encode_bytes<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<T, M> EncodeBytes<M> for &mut T
where T: ?Sized + EncodeBytes<M>,

source§

fn encode_bytes<E>(&self, cx: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

source§

impl<const N: usize, M> EncodeBytes<M> for [u8; N]

source§

fn encode_bytes<E>(&self, _: &E::Cx, encoder: E) -> Result<E::Ok, E::Error>
where E: Encoder<Mode = M>,

Implementors§