pub struct ReceiveWindow { /* private fields */ }Expand description
Sliding window for receive-side reliability
Implementations§
Source§impl ReceiveWindow
impl ReceiveWindow
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default window size
Sourcepub fn cumulative_ack(&self) -> SequenceNumber
pub fn cumulative_ack(&self) -> SequenceNumber
Get the cumulative ACK to send
Sourcepub fn is_in_window(&self, seq: SequenceNumber) -> bool
pub fn is_in_window(&self, seq: SequenceNumber) -> bool
Check if a sequence number is within the receive window
Sourcepub fn receive(
&mut self,
seq: SequenceNumber,
data: Vec<u8>,
) -> Option<Vec<(SequenceNumber, Vec<u8>)>>
pub fn receive( &mut self, seq: SequenceNumber, data: Vec<u8>, ) -> Option<Vec<(SequenceNumber, Vec<u8>)>>
Receive a packet
Returns the data if packet is in-order, or None if out-of-order (buffered). Also returns any subsequently buffered packets that are now in-order.
Sourcepub fn reset_with_seq(&mut self, start_seq: SequenceNumber)
pub fn reset_with_seq(&mut self, start_seq: SequenceNumber)
Reset the window with a starting sequence number
Sourcepub fn buffered_count(&self) -> usize
pub fn buffered_count(&self) -> usize
Get count of buffered out-of-order packets
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ReceiveWindow
impl RefUnwindSafe for ReceiveWindow
impl Send for ReceiveWindow
impl Sync for ReceiveWindow
impl Unpin for ReceiveWindow
impl UnsafeUnpin for ReceiveWindow
impl UnwindSafe for ReceiveWindow
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