Trait musli::de::DecodeBytes

source ·
pub trait DecodeBytes<'de, M>: Sized {
    // Required method
    fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
       where D: Decoder<'de, Mode = M>;
}
Expand description

Trait governing how types are decoded as bytes.

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

§Examples

use musli::Decode;

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

Implementing manually:

use musli::{Decode, Decoder};
use musli::de::DecodeBytes;

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

impl<'de, M> Decode<'de, M> for MyType {
    fn decode<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
    where
        D: Decoder<'de>,
    {
        Ok(Self {
            data: DecodeBytes::decode_bytes(cx, decoder)?,
        })
    }
}

Required Methods§

source

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

Decode the given input as bytes.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'de, M> DecodeBytes<'de, M> for &'de [u8]

source§

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de>,

source§

impl<'de, M> DecodeBytes<'de, M> for Cow<'de, [u8]>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(_: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M> DecodeBytes<'de, M> for Box<[u8]>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M> DecodeBytes<'de, M> for VecDeque<u8>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M> DecodeBytes<'de, M> for Rc<[u8]>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M> DecodeBytes<'de, M> for Arc<[u8]>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(cx: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M> DecodeBytes<'de, M> for Vec<u8>

Available on crate feature alloc only.
source§

fn decode_bytes<D>(_: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M>,

source§

impl<'de, M, const N: usize> DecodeBytes<'de, M> for [u8; N]

source§

fn decode_bytes<D>(_: &D::Cx, decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de>,

Implementors§