pub struct SendWindow { /* private fields */ }Expand description
Sliding window for send-side reliability
Implementations§
Source§impl SendWindow
impl SendWindow
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default config
Sourcepub fn next_seq(&self) -> SequenceNumber
pub fn next_seq(&self) -> SequenceNumber
Get next sequence number to use
Sourcepub fn send(&mut self, data: Vec<u8>) -> Option<SequenceNumber>
pub fn send(&mut self, data: Vec<u8>) -> Option<SequenceNumber>
Add a packet to the send window
Returns the sequence number assigned to the packet, or None if window is full.
Sourcepub fn add(
&mut self,
seq: SequenceNumber,
data: Vec<u8>,
) -> Result<(), ConstrainedError>
pub fn add( &mut self, seq: SequenceNumber, data: Vec<u8>, ) -> Result<(), ConstrainedError>
Add a packet with a specific sequence number
Used when the caller manages sequence numbers. Returns error if window is full.
Sourcepub fn acknowledge(&mut self, ack: SequenceNumber) -> usize
pub fn acknowledge(&mut self, ack: SequenceNumber) -> usize
Process a cumulative ACK
Acknowledges all packets up to and including the given sequence number. Returns the number of packets acknowledged.
Sourcepub fn get_retransmissions(&mut self) -> Option<Vec<(SequenceNumber, Vec<u8>)>>
pub fn get_retransmissions(&mut self) -> Option<Vec<(SequenceNumber, Vec<u8>)>>
Get packets that need retransmission
Returns a list of packets that have exceeded RTO and haven’t exceeded max retries. Returns None if any packet has exceeded max retries (connection should fail).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SendWindow
impl RefUnwindSafe for SendWindow
impl Send for SendWindow
impl Sync for SendWindow
impl Unpin for SendWindow
impl UnsafeUnpin for SendWindow
impl UnwindSafe for SendWindow
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