#[derive(SplitBytes)]Available on crate feature
unstable-new only.Expand description
Deriving SplitBytes automatically.
SplitBytes can be derived on structs (not enums or unions). All
fields must implement SplitBytes.
Here’s a simple example:
#[derive(ParseBytes)]
struct Foo<T> {
a: U32,
b: Bar<T>,
}
// The generated impl with 'derive(SplitBytes)':
impl<'bytes, T> SplitBytes<'bytes> for Foo<T>
where
U32: SplitBytes<'bytes>,
Bar<T>: SplitBytes<'bytes>,
{
fn split_bytes(
bytes: &'bytes [u8],
) -> Result<(Self, &'bytes [u8]), ParseError> {
let (field_a, bytes) = U32::split_bytes(bytes)?;
let (field_b, bytes) = <Bar<T>>::split_bytes(bytes)?;
Ok((Self { a: field_a, b: field_b }, bytes))
}
}