pub struct PfaReassemblyBuffer {
pub msg_id: PfaMessageId,
pub received: Vec<Option<PfaFragment>>,
pub total_fragments: u32,
pub created_at: u64,
pub last_updated: u64,
/* private fields */
}Expand description
Internal buffer accumulating received fragments for one message.
Fields§
§msg_id: PfaMessageIdMessage identifier.
received: Vec<Option<PfaFragment>>Slots for each expected fragment; None means not yet received.
total_fragments: u32How many fragments are expected in total.
created_at: u64Unix-epoch seconds when the buffer was first created.
last_updated: u64Unix-epoch seconds of the most recently received fragment.
Implementations§
Source§impl PfaReassemblyBuffer
impl PfaReassemblyBuffer
Sourcepub fn received_count(&self) -> u32
pub fn received_count(&self) -> u32
Returns how many non-duplicate fragments have been stored.
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Returns true when all fragments have been received.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PfaReassemblyBuffer
impl RefUnwindSafe for PfaReassemblyBuffer
impl Send for PfaReassemblyBuffer
impl Sync for PfaReassemblyBuffer
impl Unpin for PfaReassemblyBuffer
impl UnsafeUnpin for PfaReassemblyBuffer
impl UnwindSafe for PfaReassemblyBuffer
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more