Skip to main content

EventQueue

Trait EventQueue 

Source
pub trait EventQueue: Send + Sync {
    // Required methods
    fn poll(&self) -> Option<QueuedEvent>;
    fn push(&self, event: QueuedEvent);
    fn is_empty(&self) -> bool;
    fn len(&self) -> usize;

    // Provided method
    fn poll_batch(&self, max: usize) -> Vec<QueuedEvent> { ... }
}
Expand description

Platform-agnostic event queue trait

Implementations provide different backing stores:

  • MemoryEventQueue: Lock-free queue for general use
  • TokioEventQueue: Integrates with Tokio channels (native only)

Required Methods§

Source

fn poll(&self) -> Option<QueuedEvent>

Poll for the next event (non-blocking)

Returns None if the queue is empty.

Source

fn push(&self, event: QueuedEvent)

Push an event onto the queue

Source

fn is_empty(&self) -> bool

Check if the queue is empty

Source

fn len(&self) -> usize

Get the number of pending events

Provided Methods§

Source

fn poll_batch(&self, max: usize) -> Vec<QueuedEvent>

Try to receive multiple events at once (batch poll)

Returns up to max events. Default implementation polls repeatedly.

Implementors§