pub struct DynamicArray<Length, Collection> { /* private fields */ }Expand description
Dynamically sized array.
Used to serialize and deserialize arbitrary collections using specific length fields.
Works on any type that implements IntoIterator<Item = Serialize> which includes Vec<T>,
BTreeMap<K, V>, and Option<T>.
The length can be LengthZero, LengthU8, LengthU16 or LengthU32 for 0, 8, 16, and
32 bit length fields, respectively.
§Examples
use rsomeip_bytes::{Deserialize as _, DynamicArray, LengthU32, Serialize as _};
// Works on any value that implements `IntoIterator`.
let value = vec![1, 2, 3, 4, 5];
// Specify the size of the length field in the generic parameters. It will be included when
// serializing the value.
let array = DynamicArray::<LengthU32, _>::from(&value);
// The array also implements the `Serialize` trait.
let mut bytes = array.to_bytes()?;
// And `Deserialize`, as well.
let output = DynamicArray::<LengthU32, Vec<i32>>::deserialize(&mut bytes)?;
assert_eq!(value, output);Trait Implementations§
Source§impl<Length: Clone, Collection: Clone> Clone for DynamicArray<Length, Collection>
impl<Length: Clone, Collection: Clone> Clone for DynamicArray<Length, Collection>
Source§fn clone(&self) -> DynamicArray<Length, Collection>
fn clone(&self) -> DynamicArray<Length, Collection>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<Length: Copy, Collection: Copy> Copy for DynamicArray<Length, Collection>
Source§impl<Length, Collection> Deserialize for DynamicArray<Length, Collection>where
Length: Length,
Collection: IntoIterator + FromIterator<<Collection::Item as Deserialize>::Output>,
Collection::Item: Deserialize,
impl<Length, Collection> Deserialize for DynamicArray<Length, Collection>where
Length: Length,
Collection: IntoIterator + FromIterator<<Collection::Item as Deserialize>::Output>,
Collection::Item: Deserialize,
Source§fn deserialize<Buffer>(
buffer: &mut Buffer,
) -> Result<Self::Output, DeserializeError>
fn deserialize<Buffer>( buffer: &mut Buffer, ) -> Result<Self::Output, DeserializeError>
Deserializes an instance of
Deserialize::Output from the buffer. Read moreimpl<Length: Eq, Collection: Eq> Eq for DynamicArray<Length, Collection>
Source§impl<Length, Collection> From<Collection> for DynamicArray<Length, Collection>
impl<Length, Collection> From<Collection> for DynamicArray<Length, Collection>
Source§impl<Length: Ord, Collection: Ord> Ord for DynamicArray<Length, Collection>
impl<Length: Ord, Collection: Ord> Ord for DynamicArray<Length, Collection>
Source§fn cmp(&self, other: &DynamicArray<Length, Collection>) -> Ordering
fn cmp(&self, other: &DynamicArray<Length, Collection>) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<Length: PartialEq, Collection: PartialEq> PartialEq for DynamicArray<Length, Collection>
impl<Length: PartialEq, Collection: PartialEq> PartialEq for DynamicArray<Length, Collection>
Source§impl<Length: PartialOrd, Collection: PartialOrd> PartialOrd for DynamicArray<Length, Collection>
impl<Length: PartialOrd, Collection: PartialOrd> PartialOrd for DynamicArray<Length, Collection>
Source§impl<Length, Collection> Serialize for DynamicArray<Length, Collection>
impl<Length, Collection> Serialize for DynamicArray<Length, Collection>
Source§fn serialize<Buffer>(
&self,
buffer: &mut Buffer,
) -> Result<usize, SerializeError>
fn serialize<Buffer>( &self, buffer: &mut Buffer, ) -> Result<usize, SerializeError>
impl<Length: PartialEq, Collection: PartialEq> StructuralPartialEq for DynamicArray<Length, Collection>
Auto Trait Implementations§
impl<Length, Collection> Freeze for DynamicArray<Length, Collection>where
Collection: Freeze,
impl<Length, Collection> RefUnwindSafe for DynamicArray<Length, Collection>where
Collection: RefUnwindSafe,
Length: RefUnwindSafe,
impl<Length, Collection> Send for DynamicArray<Length, Collection>
impl<Length, Collection> Sync for DynamicArray<Length, Collection>
impl<Length, Collection> Unpin for DynamicArray<Length, Collection>
impl<Length, Collection> UnsafeUnpin for DynamicArray<Length, Collection>where
Collection: UnsafeUnpin,
impl<Length, Collection> UnwindSafe for DynamicArray<Length, Collection>where
Collection: UnwindSafe,
Length: UnwindSafe,
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