pub struct DynSerializer<'a>(/* private fields */);
Expand description
A type that provides Serializer
via dynamic dispatch.
See discussion on DynamicSerializer
for when dynamically dispatched
serializers can be beneficial.
Implementations§
Source§impl<'a> DynSerializer<'a>
impl<'a> DynSerializer<'a>
Sourcepub fn new<S: Serializer>(s: &'a S) -> Self
pub fn new<S: Serializer>(s: &'a S) -> Self
Creates a new DynSerializer
from a borrow to a concrete serializer.
Sourcepub fn new_dyn(s: &'a dyn DynamicSerializer) -> Self
pub fn new_dyn(s: &'a dyn DynamicSerializer) -> Self
Creates a new DynSerializer
from a fat DynamicSerializer
pointer.
Trait Implementations§
Source§impl<'a> Clone for DynSerializer<'a>
impl<'a> Clone for DynSerializer<'a>
Source§fn clone(&self) -> DynSerializer<'a>
fn clone(&self) -> DynSerializer<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Serializer for DynSerializer<'_>
impl Serializer for DynSerializer<'_>
Source§fn serialize<B: GrowBufferMut, P: BufferProvider<Self::Buffer, B>>(
self,
outer: PacketConstraints,
provider: P,
) -> Result<B, (SerializeError<P::Error>, Self)>
fn serialize<B: GrowBufferMut, P: BufferProvider<Self::Buffer, B>>( self, outer: PacketConstraints, provider: P, ) -> Result<B, (SerializeError<P::Error>, Self)>
Serializes this
Serializer
, producing a buffer. Read moreSource§fn serialize_new_buf<B: GrowBufferMut, A: LayoutBufferAlloc<B>>(
&self,
outer: PacketConstraints,
alloc: A,
) -> Result<B, SerializeError<A::Error>>
fn serialize_new_buf<B: GrowBufferMut, A: LayoutBufferAlloc<B>>( &self, outer: PacketConstraints, alloc: A, ) -> Result<B, SerializeError<A::Error>>
Serializes the data into a new buffer without consuming
self
. Read moreSource§fn serialize_vec(
self,
outer: PacketConstraints,
) -> Result<Either<Self::Buffer, Buf<Vec<u8>>>, (SerializeError<Never>, Self)>where
Self::Buffer: ReusableBuffer,
fn serialize_vec(
self,
outer: PacketConstraints,
) -> Result<Either<Self::Buffer, Buf<Vec<u8>>>, (SerializeError<Never>, Self)>where
Self::Buffer: ReusableBuffer,
Serializes this
Serializer
, allocating a Buf<Vec<u8>>
if the
contained buffer isn’t large enough. Read moreSource§fn serialize_no_alloc(
self,
outer: PacketConstraints,
) -> Result<Self::Buffer, (SerializeError<BufferTooShortError>, Self)>where
Self::Buffer: ReusableBuffer,
fn serialize_no_alloc(
self,
outer: PacketConstraints,
) -> Result<Self::Buffer, (SerializeError<BufferTooShortError>, Self)>where
Self::Buffer: ReusableBuffer,
Serializes this
Serializer
, failing if the existing buffer is not
large enough. Read moreSource§fn serialize_outer<B: GrowBufferMut, P: BufferProvider<Self::Buffer, B>>(
self,
provider: P,
) -> Result<B, (SerializeError<P::Error>, Self)>
fn serialize_outer<B: GrowBufferMut, P: BufferProvider<Self::Buffer, B>>( self, provider: P, ) -> Result<B, (SerializeError<P::Error>, Self)>
Serializes this
Serializer
as the outermost packet. Read moreSource§fn serialize_vec_outer(
self,
) -> Result<Either<Self::Buffer, Buf<Vec<u8>>>, (SerializeError<Never>, Self)>where
Self::Buffer: ReusableBuffer,
fn serialize_vec_outer(
self,
) -> Result<Either<Self::Buffer, Buf<Vec<u8>>>, (SerializeError<Never>, Self)>where
Self::Buffer: ReusableBuffer,
Serializes this
Serializer
as the outermost packet, allocating a
Buf<Vec<u8>>
if the contained buffer isn’t large enough. Read moreSource§fn serialize_no_alloc_outer(
self,
) -> Result<Self::Buffer, (SerializeError<BufferTooShortError>, Self)>where
Self::Buffer: ReusableBuffer,
fn serialize_no_alloc_outer(
self,
) -> Result<Self::Buffer, (SerializeError<BufferTooShortError>, Self)>where
Self::Buffer: ReusableBuffer,
Serializes this
Serializer
as the outermost packet, failing if the
existing buffer is not large enough. Read moreSource§fn wrap_in<B: PacketBuilder>(self, outer: B) -> Nested<Self, B>
fn wrap_in<B: PacketBuilder>(self, outer: B) -> Nested<Self, B>
Source§fn with_size_limit(self, limit: usize) -> Nested<Self, LimitedSizePacketBuilder>
fn with_size_limit(self, limit: usize) -> Nested<Self, LimitedSizePacketBuilder>
Creates a new
Serializer
which will enforce a size limit. Read moreimpl<'a> Copy for DynSerializer<'a>
Auto Trait Implementations§
impl<'a> Freeze for DynSerializer<'a>
impl<'a> !RefUnwindSafe for DynSerializer<'a>
impl<'a> !Send for DynSerializer<'a>
impl<'a> !Sync for DynSerializer<'a>
impl<'a> Unpin for DynSerializer<'a>
impl<'a> !UnwindSafe for DynSerializer<'a>
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