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§
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<'de, M> DecodeBytes<'de, M> for &'de [u8]
impl<'de, M> DecodeBytes<'de, M> for &'de [u8]
source§impl<'de, M> DecodeBytes<'de, M> for Cow<'de, [u8]>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for Cow<'de, [u8]>
Available on crate feature
alloc
only.source§impl<'de, M> DecodeBytes<'de, M> for Box<[u8]>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for Box<[u8]>
Available on crate feature
alloc
only.source§impl<'de, M> DecodeBytes<'de, M> for VecDeque<u8>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for VecDeque<u8>
Available on crate feature
alloc
only.source§impl<'de, M> DecodeBytes<'de, M> for Rc<[u8]>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for Rc<[u8]>
Available on crate feature
alloc
only.source§impl<'de, M> DecodeBytes<'de, M> for Arc<[u8]>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for Arc<[u8]>
Available on crate feature
alloc
only.source§impl<'de, M> DecodeBytes<'de, M> for Vec<u8>
Available on crate feature alloc
only.
impl<'de, M> DecodeBytes<'de, M> for Vec<u8>
Available on crate feature
alloc
only.