pub enum EitherSerializer<A, B> {
A(A),
B(B),
}
Expand description
Either of two serializers.
An EitherSerializer
wraps one of two different serializer types.
Variants§
Trait Implementations§
Source§impl<A: Serializer, B: Serializer<Buffer = A::Buffer>> Serializer for EitherSerializer<A, B>
impl<A: Serializer, B: Serializer<Buffer = A::Buffer>> Serializer for EitherSerializer<A, B>
Source§type Buffer = <A as Serializer>::Buffer
type Buffer = <A as Serializer>::Buffer
The type of buffers returned from serialization methods on this trait.
Source§fn serialize<TB: GrowBufferMut, P: BufferProvider<Self::Buffer, TB>>(
self,
outer: PacketConstraints,
provider: P,
) -> Result<TB, (SerializeError<P::Error>, Self)>
fn serialize<TB: GrowBufferMut, P: BufferProvider<Self::Buffer, TB>>( self, outer: PacketConstraints, provider: P, ) -> Result<TB, (SerializeError<P::Error>, Self)>
Serializes this
Serializer
, producing a buffer. Read moreSource§fn serialize_new_buf<TB: ReusableBuffer, BA: BufferAlloc<TB>>(
&self,
outer: PacketConstraints,
alloc: BA,
) -> Result<TB, SerializeError<BA::Error>>
fn serialize_new_buf<TB: ReusableBuffer, BA: BufferAlloc<TB>>( &self, outer: PacketConstraints, alloc: BA, ) -> Result<TB, SerializeError<BA::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 encapsulate<B>(self, outer: B) -> Nested<Self, B>
fn encapsulate<B>(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 moreAuto Trait Implementations§
impl<A, B> Freeze for EitherSerializer<A, B>
impl<A, B> RefUnwindSafe for EitherSerializer<A, B>where
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> Send for EitherSerializer<A, B>
impl<A, B> Sync for EitherSerializer<A, B>
impl<A, B> Unpin for EitherSerializer<A, B>
impl<A, B> UnwindSafe for EitherSerializer<A, B>where
A: UnwindSafe,
B: 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