pub struct SerializeWithFn<'value, Value, SerializeFn, SizeFn> { /* private fields */ }Expand description
Wrapper for serializing a value with a pair of functions.
§Examples
use rsomeip_bytes::{SerializeWithFn, BufMut, Serialize as _};
// Type that needs custom serialization.
struct Foo {
bar: u8,
baz: u16,
}
let wrapper = SerializeWithFn::new(
&Foo{ bar: 1_u8, baz: 2_u16 },
|value, buffer| (&value.bar, &value.baz).serialize(buffer),
|value| (&value.bar, &value.baz).size(),
);
let bytes = wrapper.to_bytes()?;
assert_eq!(&bytes, [1_u8, 0, 2].as_slice());Implementations§
Source§impl<'value, Value, SerializeFn, SizeFn> SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> SerializeWithFn<'value, Value, SerializeFn, SizeFn>
Sourcepub const fn new(
value: &'value Value,
serialize: SerializeFn,
size: SizeFn,
) -> Self
pub const fn new( value: &'value Value, serialize: SerializeFn, size: SizeFn, ) -> Self
Creates a new SerializeWithFn.
Trait Implementations§
Source§impl<Value, SerializeFn, SizeFn> Serialize for SerializeWithFn<'_, Value, SerializeFn, SizeFn>
impl<Value, SerializeFn, SizeFn> Serialize for SerializeWithFn<'_, Value, SerializeFn, SizeFn>
Source§fn serialize<Buffer>(
&self,
buffer: &mut Buffer,
) -> Result<usize, SerializeError>
fn serialize<Buffer>( &self, buffer: &mut Buffer, ) -> Result<usize, SerializeError>
Auto Trait Implementations§
impl<'value, Value, SerializeFn, SizeFn> Freeze for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> RefUnwindSafe for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> Send for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> Sync for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> Unpin for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
impl<'value, Value, SerializeFn, SizeFn> UnsafeUnpin for SerializeWithFn<'value, Value, SerializeFn, SizeFn>where
SerializeFn: UnsafeUnpin,
SizeFn: UnsafeUnpin,
impl<'value, Value, SerializeFn, SizeFn> UnwindSafe for SerializeWithFn<'value, Value, SerializeFn, SizeFn>
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