pub trait Decode<'de, M, A>: Sizedwhere
A: Allocator,{
const IS_BITWISE_DECODE: bool = false;
// Required method
fn decode<D>(decoder: D) -> Result<Self, D::Error>
where D: Decoder<'de, Mode = M, Allocator = A>;
}
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: [u32; 8],
}
Implementing manually:
use musli::{Allocator, Decode, Decoder};
struct MyType {
data: [u32; 8],
}
impl<'de, M, A> Decode<'de, M, A> for MyType
where
A: Allocator,
{
#[inline]
fn decode<D>(decoder: D) -> Result<Self, D::Error>
where
D: Decoder<'de>,
{
Ok(Self {
data: decoder.decode()?,
})
}
}
Provided Associated Constants§
Sourceconst IS_BITWISE_DECODE: bool = false
const IS_BITWISE_DECODE: bool = false
Whether the type is packed. Packed types can be bitwise copied if the representation of the serialization format is identical to the memory layout of the type.
Note that setting this to true
has safety implications, since it
implies that assuming the type is correctly aligned it can be validly
bitwise copied when encoded. Setting it to false
is always safe.
This being set to true
also implies that the type is Copy
, and must
not have a Drop
implementation.
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<'de, A> Decode<'de, Binary, A> for Ipv4Addrwhere
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Binary, A> for Ipv4Addrwhere
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Binary, A> for Ipv6Addrwhere
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Binary, A> for Ipv6Addrwhere
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Binary, A> for SocketAddrV4where
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Binary, A> for SocketAddrV4where
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Binary, A> for SocketAddrV6where
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Binary, A> for SocketAddrV6where
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Text, A> for Ipv4Addrwhere
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Text, A> for Ipv4Addrwhere
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Text, A> for Ipv6Addrwhere
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Text, A> for Ipv6Addrwhere
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Text, A> for SocketAddrV4where
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Text, A> for SocketAddrV4where
A: Allocator,
std
only.Source§impl<'de, A> Decode<'de, Text, A> for SocketAddrV6where
A: Allocator,
Available on crate feature std
only.
impl<'de, A> Decode<'de, Text, A> for SocketAddrV6where
A: Allocator,
std
only.Source§impl<'de, K, V, A, M> Decode<'de, M, A> for BTreeMap<K, V>
Available on crate feature alloc
only.
impl<'de, K, V, A, M> Decode<'de, M, A> for BTreeMap<K, V>
alloc
only.Source§impl<'de, K, V, A, M, S> Decode<'de, M, A> for HashMap<K, V, S>
Available on crate features alloc
and std
only.
impl<'de, K, V, A, M, S> Decode<'de, M, A> for HashMap<K, V, S>
alloc
and std
only.Source§impl<'de, M, A> Decode<'de, M, A> for Cow<'de, str>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Cow<'de, str>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Cow<'de, CStr>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Cow<'de, CStr>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for SocketAddrwhere
A: Allocator,
SocketAddrTag: Decode<'de, M, A>,
SocketAddrV4: Decode<'de, M, A>,
SocketAddrV6: Decode<'de, M, A>,
Available on crate feature std
only.
impl<'de, M, A> Decode<'de, M, A> for SocketAddrwhere
A: Allocator,
SocketAddrTag: Decode<'de, M, A>,
SocketAddrV4: Decode<'de, M, A>,
SocketAddrV6: Decode<'de, M, A>,
std
only.Source§impl<'de, M, A> Decode<'de, M, A> for Box<str>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Box<str>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Box<CStr>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Box<CStr>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Box<OsStr>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Box<OsStr>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Box<Path>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Box<Path>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for CStringwhere
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for CStringwhere
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Rc<str>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Rc<str>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Rc<CStr>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Rc<CStr>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Rc<OsStr>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Rc<OsStr>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Rc<Path>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Rc<Path>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Stringwhere
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Stringwhere
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Arc<str>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Arc<str>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Arc<CStr>where
A: Allocator,
Available on crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Arc<CStr>where
A: Allocator,
alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Arc<OsStr>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Arc<OsStr>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for Arc<Path>
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for Arc<Path>
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for AtomicBoolwhere
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for AtomicBoolwhere
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for AtomicIsizewhere
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for AtomicIsizewhere
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for AtomicUsizewhere
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for AtomicUsizewhere
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for OsString
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for OsString
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for PathBuf
Available on crate feature std
and (Unix or Windows) and crate feature alloc
only.
impl<'de, M, A> Decode<'de, M, A> for PathBuf
std
and (Unix or Windows) and crate feature alloc
only.Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroI16where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroI16where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroI32where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroI32where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroI64where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroI64where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroI128where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroI128where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroIsizewhere
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroIsizewhere
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroU16where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroU16where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroU32where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroU32where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroU64where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroU64where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroU128where
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroU128where
A: Allocator,
Source§impl<'de, M, A> Decode<'de, M, A> for NonZeroUsizewhere
A: Allocator,
impl<'de, M, A> Decode<'de, M, A> for NonZeroUsizewhere
A: Allocator,
Source§impl<'de, M, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T0: Decode<'de, M, A>,
T1: Decode<'de, M, A>,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
impl<'de, M, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T0: Decode<'de, M, A>,
T1: Decode<'de, M, A>,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
Source§impl<'de, M, A, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T1: Decode<'de, M, A>,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
impl<'de, M, A, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T1: Decode<'de, M, A>,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
Source§impl<'de, M, A, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
impl<'de, M, A, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T2: Decode<'de, M, A>,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
Source§impl<'de, M, A, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
impl<'de, M, A, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T3: Decode<'de, M, A>,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
Source§impl<'de, M, A, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
impl<'de, M, A, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
A: Allocator,
T4: Decode<'de, M, A>,
T5: Decode<'de, M, A>,
T6: Decode<'de, M, A>,
T7: Decode<'de, M, A>,
T8: Decode<'de, M, A>,
T9: Decode<'de, M, A>,
T10: Decode<'de, M, A>,
T11: Decode<'de, M, A>,
T12: Decode<'de, M, A>,
T13: Decode<'de, M, A>,
T14: Decode<'de, M, A>,
T15: Decode<'de, M, A>,
Source§impl<'de, M, A, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T7, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T7, T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T8, T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T8, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T9, T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T9, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T9, T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T10, T11, T12, T13, T14, T15)
impl<'de, M, A, T10, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T10, T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T11, T12, T13, T14, T15)
impl<'de, M, A, T11, T12, T13, T14, T15> Decode<'de, M, A> for (T11, T12, T13, T14, T15)
Source§impl<'de, M, A, T12, T13, T14, T15> Decode<'de, M, A> for (T12, T13, T14, T15)
impl<'de, M, A, T12, T13, T14, T15> Decode<'de, M, A> for (T12, T13, T14, T15)
Source§impl<'de, M, A, T13, T14, T15> Decode<'de, M, A> for (T13, T14, T15)
impl<'de, M, A, T13, T14, T15> Decode<'de, M, A> for (T13, T14, T15)
Source§impl<'de, M, A, T14, T15> Decode<'de, M, A> for (T14, T15)
impl<'de, M, A, T14, T15> Decode<'de, M, A> for (T14, T15)
Source§impl<'de, M, A, T> Decode<'de, M, A> for BinaryHeap<T>
Available on crate feature alloc
only.
impl<'de, M, A, T> Decode<'de, M, A> for BinaryHeap<T>
alloc
only.Source§impl<'de, M, A, T> Decode<'de, M, A> for PhantomData<T>where
A: Allocator,
impl<'de, M, A, T> Decode<'de, M, A> for PhantomData<T>where
A: Allocator,
Source§impl<'de, M, A, T> Decode<'de, M, A> for RangeInclusive<T>
impl<'de, M, A, T> Decode<'de, M, A> for RangeInclusive<T>
Source§impl<'de, M, A, T> Decode<'de, M, A> for RangeToInclusive<T>
impl<'de, M, A, T> Decode<'de, M, A> for RangeToInclusive<T>
Source§impl<'de, M, A, T, S> Decode<'de, M, A> for HashSet<T, S>
Available on crate features alloc
and std
only.
impl<'de, M, A, T, S> Decode<'de, M, A> for HashSet<T, S>
alloc
and std
only.Source§impl<'de, M, T, A> Decode<'de, M, A> for Saturating<T>
impl<'de, M, T, A> Decode<'de, M, A> for Saturating<T>
Implementors§
Source§impl<'de, M, A> Decode<'de, M, A> for musli_core::alloc::String<A>where
A: Allocator,
Decode implementation for a Müsli-allocated String
.
impl<'de, M, A> Decode<'de, M, A> for musli_core::alloc::String<A>where
A: Allocator,
Decode implementation for a Müsli-allocated String
.
§Examples
use musli::alloc::String;
use musli::{Allocator, Decode};
#[derive(Decode)]
struct Struct<A> where A: Allocator {
field: String<A>
}