Skip to main content

kovan_queue/
lib.rs

1#![doc(
2    html_logo_url = "https://raw.githubusercontent.com/vertexclique/kovan/master/art/kovan-square.svg"
3)]
4//! High-performance queue primitives and Disruptor implementation for Kovan.
5//!
6//! ## Features
7//!
8//! - `ArrayQueue`: Bounded MPMC queue.
9//! - `SegQueue`: Unbounded MPMC queue (segment based).
10//! - `Disruptor`: Disruptor pattern implementation.
11//!
12//! ## Usage
13//!
14//! ```rust
15//! use kovan_queue::disruptor::{Disruptor, EventHandler, BusySpinWaitStrategy};
16//!
17//! struct MyEvent { data: u64 }
18//! struct MyHandler;
19//! impl EventHandler<MyEvent> for MyHandler {
20//!     fn on_event(&self, event: &MyEvent, _: u64, _: bool) {
21//!         println!("Event: {}", event.data);
22//!     }
23//! }
24//!
25//! let mut disruptor = Disruptor::builder(|| MyEvent { data: 0 })
26//!     .build();
27//! disruptor.handle_events_with(MyHandler);
28//! let mut producer = disruptor.start();
29//! producer.publish(|e| e.data = 42);
30//! ```
31
32pub mod array_queue;
33pub mod disruptor;
34pub mod seg_queue;
35pub mod utils;