pub struct Box<T: ?Sized, Len = BincodeLen>(/* private fields */);Available on crate feature
alloc only.Expand description
A Box<[T]> with a customizable length encoding and optimized
read/write implementation for Pod.
§Examples
#[derive(Serialize, Deserialize, Clone, Copy)]
#[repr(transparent)]
struct Address([u8; 32]);
#[derive(Serialize, Deserialize, SchemaWrite, SchemaRead)]
struct MyStruct {
#[wincode(with = "containers::Box<[Pod<Address>]>")]
address: Box<[Address]>
}
let my_struct = MyStruct {
address: vec![Address(array::from_fn(|i| i as u8)); 10].into_boxed_slice(),
};
let wincode_bytes = wincode::serialize(&my_struct).unwrap();
let bincode_bytes = bincode::serialize(&my_struct).unwrap();
assert_eq!(wincode_bytes, bincode_bytes);Trait Implementations§
Source§impl<T, Len> SchemaRead<'_> for Box<[Pod<T>], Len>
impl<T, Len> SchemaRead<'_> for Box<[Pod<T>], Len>
Source§impl<'de, T, Len> SchemaRead<'de> for Box<[Elem<T>], Len>where
Len: SeqLen,
T: SchemaRead<'de>,
impl<'de, T, Len> SchemaRead<'de> for Box<[Elem<T>], Len>where
Len: SeqLen,
T: SchemaRead<'de>,
Source§impl<T, Len> SchemaWrite for Box<[Elem<T>], Len>
impl<T, Len> SchemaWrite for Box<[Elem<T>], Len>
Source§impl<T, Len> SchemaWrite for Box<[Pod<T>], Len>
impl<T, Len> SchemaWrite for Box<[Pod<T>], Len>
Auto Trait Implementations§
impl<T, Len> Freeze for Box<T, Len>where
T: ?Sized,
impl<T, Len> RefUnwindSafe for Box<T, Len>
impl<T, Len> Send for Box<T, Len>
impl<T, Len> Sync for Box<T, Len>
impl<T, Len> Unpin for Box<T, Len>
impl<T, Len> UnwindSafe for Box<T, Len>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<'de, T> Deserialize<'de> for Twhere
T: SchemaRead<'de>,
impl<'de, T> Deserialize<'de> for Twhere
T: SchemaRead<'de>,
Source§fn deserialize(bytes: &'de [u8]) -> ReadResult<Self::Dst>
fn deserialize(bytes: &'de [u8]) -> ReadResult<Self::Dst>
Deserialize
bytes into a new Self::Dst.Source§fn deserialize_into(
bytes: &'de [u8],
target: &mut MaybeUninit<Self::Dst>,
) -> ReadResult<()>
fn deserialize_into( bytes: &'de [u8], target: &mut MaybeUninit<Self::Dst>, ) -> ReadResult<()>
Deserialize
bytes into target.Source§impl<T> Serialize for Twhere
T: SchemaWrite + ?Sized,
impl<T> Serialize for Twhere
T: SchemaWrite + ?Sized,
Source§fn serialize(src: &Self::Src) -> WriteResult<Vec<u8>>
fn serialize(src: &Self::Src) -> WriteResult<Vec<u8>>
Available on crate feature
alloc only.Serialize a serializable type into a
Vec of bytes.Source§fn serialize_into(
src: &Self::Src,
target: &mut [MaybeUninit<u8>],
) -> WriteResult<usize>
fn serialize_into( src: &Self::Src, target: &mut [MaybeUninit<u8>], ) -> WriteResult<usize>
Serialize a serializable type into the given byte buffer. Read more
Source§fn serialized_size(src: &Self::Src) -> WriteResult<u64>
fn serialized_size(src: &Self::Src) -> WriteResult<u64>
Get the size in bytes of the type when serialized.