1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! # cronoq-core
//!
//! The sans-IO engine of the cronoq elastic priority scheduler. [`Core`] is a deterministic,
//! single-threaded state machine: it never reads a clock, spawns threads or performs I/O. A
//! driver (the `cronoq` crate, or a test harness with virtual time) feeds it submissions,
//! completions and the current [`Time`], and executes the [`Action`]s it emits.
//!
//! ```
//! use cronoq_core::*;
//!
//! let mut core: Core<&str> = Core::new(CoreConfig::default());
//! let t0 = Time::ZERO;
//! core.submit(t0, TaskSpec::new("hello").priority(Priority::High)).unwrap();
//! let Some(Action::Dispatch(d)) = core.poll_action() else { panic!() };
//! assert_eq!(*d.payload, "hello");
//! core.complete(Time::from_secs_f64(0.5), d.lease, Outcome::Success);
//! ```
pub use ;
pub use *;
pub use ;
pub use *;
pub use ;
pub use *;
pub use ;
pub use Time;