okee_wheel_timer/lib.rs
1//! Deterministic single-level hashed wheel timers.
2//!
3//! The crate provides two timer variants:
4//! - [`HashedWheelTimer`]: core timer indexed by event ID.
5//! - [`KeyedHashedWheelTimer`]: wrapper with replacement by a user-defined key.
6//!
7//! Typical processing loop:
8//! ```
9//! use okee_wheel_timer::HashedWheelTimer;
10//!
11//! let mut wheel = HashedWheelTimer::new(8);
12//! let _ = wheel.schedule(0, "payload");
13//!
14//! while wheel.has_events_in_current_tick() {
15//! let _events = wheel.pop_events();
16//! }
17//! wheel.step();
18//! ```
19pub mod event;
20pub mod keyed_time_wheel;
21pub mod time_wheel;
22
23pub use event::{Event, EventId};
24pub use keyed_time_wheel::{KeyedHashedWheelTimer, KeyedScheduleResult, KeyedUpdateResult};
25pub use time_wheel::{HashedWheelTimer, ScheduleResult, TimeWheelError, UpdateResult};