pub trait Decode<'de, M>: Sized {
// Required method
fn decode<D>(
cx: &<D as Decoder<'de>>::Cx,
decoder: D
) -> Result<Self, <D as Decoder<'de>>::Error>
where D: Decoder<'de, Mode = M>;
}
Expand description
Trait governing how types are decoded.
This is typically implemented automatically using the Decode
derive.
§Examples
use musli::Decode;
#[derive(Decode)]
struct MyType {
data: [u8; 128],
}
Implementing manually:
use musli::{Decode, Decoder};
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: decoder.decode_array()?,
})
}
}
Required Methods§
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<'de> Decode<'de, Binary> for SocketAddrV4
impl<'de> Decode<'de, Binary> for SocketAddrV4
source§impl<'de> Decode<'de, Binary> for SocketAddrV6
impl<'de> Decode<'de, Binary> for SocketAddrV6
source§impl<'de> Decode<'de, Text> for SocketAddrV4
impl<'de> Decode<'de, Text> for SocketAddrV4
source§impl<'de> Decode<'de, Text> for SocketAddrV6
impl<'de> Decode<'de, Text> for SocketAddrV6
source§impl<'de, M> Decode<'de, M> for SocketAddr
impl<'de, M> Decode<'de, M> for SocketAddr
source§impl<'de, M> Decode<'de, M> for AtomicBool
impl<'de, M> Decode<'de, M> for AtomicBool
source§impl<'de, M> Decode<'de, M> for AtomicIsize
impl<'de, M> Decode<'de, M> for AtomicIsize
source§impl<'de, M> Decode<'de, M> for AtomicUsize
impl<'de, M> Decode<'de, M> for AtomicUsize
source§impl<'de, M, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T0: Decode<'de, M>,
T1: Decode<'de, M>,
T2: Decode<'de, M>,
T3: Decode<'de, M>,
T4: Decode<'de, M>,
T5: Decode<'de, M>,
T6: Decode<'de, M>,
T7: Decode<'de, M>,
T8: Decode<'de, M>,
T9: Decode<'de, M>,
T10: Decode<'de, M>,
T11: Decode<'de, M>,
T12: Decode<'de, M>,
T13: Decode<'de, M>,
T14: Decode<'de, M>,
T15: Decode<'de, M>,
impl<'de, M, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T0: Decode<'de, M>,
T1: Decode<'de, M>,
T2: Decode<'de, M>,
T3: Decode<'de, M>,
T4: Decode<'de, M>,
T5: Decode<'de, M>,
T6: Decode<'de, M>,
T7: Decode<'de, M>,
T8: Decode<'de, M>,
T9: Decode<'de, M>,
T10: Decode<'de, M>,
T11: Decode<'de, M>,
T12: Decode<'de, M>,
T13: Decode<'de, M>,
T14: Decode<'de, M>,
T15: Decode<'de, M>,
source§impl<'de, M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T1: Decode<'de, M>,
T2: Decode<'de, M>,
T3: Decode<'de, M>,
T4: Decode<'de, M>,
T5: Decode<'de, M>,
T6: Decode<'de, M>,
T7: Decode<'de, M>,
T8: Decode<'de, M>,
T9: Decode<'de, M>,
T10: Decode<'de, M>,
T11: Decode<'de, M>,
T12: Decode<'de, M>,
T13: Decode<'de, M>,
T14: Decode<'de, M>,
T15: Decode<'de, M>,
impl<'de, M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
T1: Decode<'de, M>,
T2: Decode<'de, M>,
T3: Decode<'de, M>,
T4: Decode<'de, M>,
T5: Decode<'de, M>,
T6: Decode<'de, M>,
T7: Decode<'de, M>,
T8: Decode<'de, M>,
T9: Decode<'de, M>,
T10: Decode<'de, M>,
T11: Decode<'de, M>,
T12: Decode<'de, M>,
T13: Decode<'de, M>,
T14: Decode<'de, M>,
T15: Decode<'de, M>,
source§impl<'de, M, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T7, T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T8, T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T9, T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T10, T11, T12, T13, T14, T15)
impl<'de, M, T10, T11, T12, T13, T14, T15> Decode<'de, M> for (T10, T11, T12, T13, T14, T15)
source§impl<'de, M, T11, T12, T13, T14, T15> Decode<'de, M> for (T11, T12, T13, T14, T15)
impl<'de, M, T11, T12, T13, T14, T15> Decode<'de, M> for (T11, T12, T13, T14, T15)
source§impl<'de, M, T12, T13, T14, T15> Decode<'de, M> for (T12, T13, T14, T15)
impl<'de, M, T12, T13, T14, T15> Decode<'de, M> for (T12, T13, T14, T15)
source§impl<'de, M, T13, T14, T15> Decode<'de, M> for (T13, T14, T15)
impl<'de, M, T13, T14, T15> Decode<'de, M> for (T13, T14, T15)
source§impl<'de, M, T14, T15> Decode<'de, M> for (T14, T15)
impl<'de, M, T14, T15> Decode<'de, M> for (T14, T15)
source§impl<'de, M, T> Decode<'de, M> for BinaryHeap<T>
impl<'de, M, T> Decode<'de, M> for BinaryHeap<T>
source§impl<'de, M, T> Decode<'de, M> for PhantomData<T>
impl<'de, M, T> Decode<'de, M> for PhantomData<T>
source§impl<'de, M, T> Decode<'de, M> for RangeInclusive<T>where
T: Decode<'de, M>,
impl<'de, M, T> Decode<'de, M> for RangeInclusive<T>where
T: Decode<'de, M>,
source§impl<'de, M, T> Decode<'de, M> for RangeToInclusive<T>where
T: Decode<'de, M>,
impl<'de, M, T> Decode<'de, M> for RangeToInclusive<T>where
T: Decode<'de, M>,
Implementors§
impl<'de, M> Decode<'de, M> for Value
Available on crate feature
value
only.