pub struct DeserializeWithLength<Length, Value> { /* private fields */ }Expand description
Wrapper for deserializing a value with a preceding length field.
See also Length::deserialize.
§Examples
use rsomeip_bytes::{DeserializeWithLength, LengthU32, Deserialize as _};
// Size hint includes the length field.
assert_eq!(Some(4), DeserializeWithLength::<LengthU32, u16>::size_hint());
let mut buffer = [0_u8, 0, 0, 2, 0, 1];
let value = DeserializeWithLength::<LengthU32, u16>::deserialize(&mut buffer.as_slice())?;
assert_eq!(value, 1_u16);Trait Implementations§
Source§impl<Length, Value> Deserialize for DeserializeWithLength<Length, Value>where
Length: Length,
Value: Deserialize,
impl<Length, Value> Deserialize for DeserializeWithLength<Length, Value>where
Length: Length,
Value: Deserialize,
Source§type Output = <Value as Deserialize>::Output
type Output = <Value as Deserialize>::Output
Type of the deserialized data.
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 moreAuto Trait Implementations§
impl<Length, Value> Freeze for DeserializeWithLength<Length, Value>
impl<Length, Value> RefUnwindSafe for DeserializeWithLength<Length, Value>where
Length: RefUnwindSafe,
Value: RefUnwindSafe,
impl<Length, Value> Send for DeserializeWithLength<Length, Value>
impl<Length, Value> Sync for DeserializeWithLength<Length, Value>
impl<Length, Value> Unpin for DeserializeWithLength<Length, Value>
impl<Length, Value> UnsafeUnpin for DeserializeWithLength<Length, Value>
impl<Length, Value> UnwindSafe for DeserializeWithLength<Length, Value>where
Length: UnwindSafe,
Value: 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