pub struct Nested<I, O> { /* private fields */ }
Expand description
One object encapsulated in another one.
Nested
s are constructed using the [NestedPacketBuilder::encapsulate
] and
Serializer::encapsulate
methods.
When I: NestedPacketBuilder
and O: NestedPacketBuilder
, Nested<I, O>
implements [NestedPacketBuilder
]. When I: Serializer
and O: NestedPacketBuilder
, Nested<I, O>
implements Serializer
.
Implementations§
Source§impl<I, O> Nested<I, O>
impl<I, O> Nested<I, O>
Sourcepub fn into_inner(self) -> I
pub fn into_inner(self) -> I
Consumes this Nested
and returns the inner object, discarding the
outer one.
Sourcepub fn into_outer(self) -> O
pub fn into_outer(self) -> O
Consumes this Nested
and returns the outer object, discarding the
inner one.
pub fn inner(&self) -> &I
pub fn inner_mut(&mut self) -> &mut I
pub fn outer(&self) -> &O
pub fn outer_mut(&mut self) -> &mut O
Trait Implementations§
Source§impl<I: Serializer, O: PacketBuilder> Serializer for Nested<I, O>
impl<I: Serializer, O: PacketBuilder> Serializer for Nested<I, O>
Source§type Buffer = <I as Serializer>::Buffer
type Buffer = <I as Serializer>::Buffer
The type of buffers returned from serialization methods on this trait.
Source§fn serialize<B: GrowBufferMut, P: BufferProvider<I::Buffer, B>>(
self,
outer: PacketConstraints,
provider: P,
) -> Result<B, (SerializeError<P::Error>, Self)>
fn serialize<B: GrowBufferMut, P: BufferProvider<I::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: ReusableBuffer, A: BufferAlloc<B>>(
&self,
outer: PacketConstraints,
alloc: A,
) -> Result<B, SerializeError<A::Error>>
fn serialize_new_buf<B: ReusableBuffer, A: BufferAlloc<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 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 moreimpl<I: Copy, O: Copy> Copy for Nested<I, O>
impl<I: Eq, O: Eq> Eq for Nested<I, O>
impl<I, O> StructuralPartialEq for Nested<I, O>
Auto Trait Implementations§
impl<I, O> Freeze for Nested<I, O>
impl<I, O> RefUnwindSafe for Nested<I, O>where
I: RefUnwindSafe,
O: RefUnwindSafe,
impl<I, O> Send for Nested<I, O>
impl<I, O> Sync for Nested<I, O>
impl<I, O> Unpin for Nested<I, O>
impl<I, O> UnwindSafe for Nested<I, O>where
I: UnwindSafe,
O: 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)