pub struct BoundedPendingBuffer { /* private fields */ }Expand description
A bounded buffer for pending peer data with automatic expiration
Implementations§
Source§impl BoundedPendingBuffer
impl BoundedPendingBuffer
Sourcepub fn new(
max_bytes_per_peer: usize,
max_messages_per_peer: usize,
ttl: Duration,
) -> Self
pub fn new( max_bytes_per_peer: usize, max_messages_per_peer: usize, ttl: Duration, ) -> Self
Create a new bounded pending buffer
Sourcepub fn push(
&mut self,
peer_id: &PeerId,
data: Vec<u8>,
) -> Result<(), PendingBufferError>
pub fn push( &mut self, peer_id: &PeerId, data: Vec<u8>, ) -> Result<(), PendingBufferError>
Push data for a peer, dropping oldest if limits exceeded
Sourcepub fn pop(&mut self, peer_id: &PeerId) -> Option<Vec<u8>>
pub fn pop(&mut self, peer_id: &PeerId) -> Option<Vec<u8>>
Pop the oldest pending data for a peer
Sourcepub fn pop_any(&mut self) -> Option<(PeerId, Vec<u8>)>
pub fn pop_any(&mut self) -> Option<(PeerId, Vec<u8>)>
Pop oldest data from any peer (returns peer_id and data)
Sourcepub fn peek_oldest(&self, peer_id: &PeerId) -> Option<&[u8]>
pub fn peek_oldest(&self, peer_id: &PeerId) -> Option<&[u8]>
Peek at the oldest entry without removing
Sourcepub fn message_count(&self, peer_id: &PeerId) -> usize
pub fn message_count(&self, peer_id: &PeerId) -> usize
Get message count for a peer
Sourcepub fn total_bytes(&self, peer_id: &PeerId) -> usize
pub fn total_bytes(&self, peer_id: &PeerId) -> usize
Get total bytes for a peer
Sourcepub fn clear_peer(&mut self, peer_id: &PeerId)
pub fn clear_peer(&mut self, peer_id: &PeerId)
Clear all pending data for a peer
Sourcepub fn cleanup_expired(&mut self)
pub fn cleanup_expired(&mut self)
Remove expired entries across all peers
Sourcepub fn stats(&self) -> PendingBufferStats
pub fn stats(&self) -> PendingBufferStats
Get buffer statistics
Sourcepub fn iter_peers(&self) -> impl Iterator<Item = &PeerId>
pub fn iter_peers(&self) -> impl Iterator<Item = &PeerId>
Iterate over peers with pending data (for recv() compatibility)
Trait Implementations§
Source§impl Debug for BoundedPendingBuffer
impl Debug for BoundedPendingBuffer
Auto Trait Implementations§
impl Freeze for BoundedPendingBuffer
impl RefUnwindSafe for BoundedPendingBuffer
impl Send for BoundedPendingBuffer
impl Sync for BoundedPendingBuffer
impl Unpin for BoundedPendingBuffer
impl UnwindSafe for BoundedPendingBuffer
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