pub struct DynamicLengthArray<'a, T, L, const MAX_ELEMENTS: usize> {
reader: ByteReader<'a>,
_marker: PhantomData<(T, L)>,
}Expand description
A SOME/IP dynamic length array.
Dynamic length arrays are prefixed with their length in bytes, followed by an arbitrary number of elements.
The length is only known inside parse_partial, so the user of this type doesn’t
have to manage it manually.
Fields§
§reader: ByteReader<'a>Slice containing the array elements.
_marker: PhantomData<(T, L)>Marker for the element type and the length type.
Implementations§
Source§impl<'a, T, L, const MAX_ELEMENTS: usize> DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
Sourcepub fn create<'b, I>(
elements: I,
buffer: &'a mut [u8],
) -> Result<DynamicLengthArray<'a, T, L, MAX_ELEMENTS>, SerializeError>
pub fn create<'b, I>( elements: I, buffer: &'a mut [u8], ) -> Result<DynamicLengthArray<'a, T, L, MAX_ELEMENTS>, SerializeError>
Creates a new array by serializing the elements to the provided buffer.
Sourcepub fn iter(&self) -> DynamicLengthArrayIterator<'a, T, MAX_ELEMENTS> ⓘ
pub fn iter(&self) -> DynamicLengthArrayIterator<'a, T, MAX_ELEMENTS> ⓘ
Returns an iterator over all elements in the array.
Trait Implementations§
Source§impl<T, L, const MAX_ELEMENTS: usize> Clone for DynamicLengthArray<'_, T, L, MAX_ELEMENTS>
impl<T, L, const MAX_ELEMENTS: usize> Clone for DynamicLengthArray<'_, T, L, MAX_ELEMENTS>
Source§impl<'a, T: Debug, L: Debug, const MAX_ELEMENTS: usize> Debug for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T: Debug, L: Debug, const MAX_ELEMENTS: usize> Debug for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
Source§impl<'a, T, L, const MAX_ELEMENTS: usize> Parse<'a> for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>where
T: Parse<'a>,
L: LengthField,
impl<'a, T, L, const MAX_ELEMENTS: usize> Parse<'a> for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>where
T: Parse<'a>,
L: LengthField,
Source§fn parse_partial(reader: &mut ByteReader<'a>) -> Result<Self, ParseError>
fn parse_partial(reader: &mut ByteReader<'a>) -> Result<Self, ParseError>
Parses a SOME/IP payload type from a given slice of bytes. Read more
Source§impl<'a, T, L, const MAX_ELEMENTS: usize> PartialEq for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> PartialEq for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
Source§impl<T, L, const MAX_ELEMENTS: usize> Serialize for DynamicLengthArray<'_, T, L, MAX_ELEMENTS>where
L: LengthField + Serialize,
impl<T, L, const MAX_ELEMENTS: usize> Serialize for DynamicLengthArray<'_, T, L, MAX_ELEMENTS>where
L: LengthField + Serialize,
Source§fn required_length(&self) -> usize
fn required_length(&self) -> usize
Returns the number of bytes required to store the serialized version of self.
Source§fn serialize_partial(
&self,
byte_writer: &mut ByteWriter<'_>,
) -> Result<(), SerializeError>
fn serialize_partial( &self, byte_writer: &mut ByteWriter<'_>, ) -> Result<(), SerializeError>
Serializes to a byte writer.
impl<'a, T, L, const MAX_ELEMENTS: usize> Eq for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
Auto Trait Implementations§
impl<'a, T, L, const MAX_ELEMENTS: usize> Freeze for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> RefUnwindSafe for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>where
T: RefUnwindSafe,
L: RefUnwindSafe,
impl<'a, T, L, const MAX_ELEMENTS: usize> Send for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> Sync for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> Unpin for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>
impl<'a, T, L, const MAX_ELEMENTS: usize> UnwindSafe for DynamicLengthArray<'a, T, L, MAX_ELEMENTS>where
T: UnwindSafe,
L: 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