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
41
42
43
44
45
46
47
48
49
50
51
52
53
//! Chronon core — portable types and the [`SchedulerStore`] persistence port.
//!
//! This crate defines domain models, error types, script identity ports, and the async storage
//! trait that backends implement. It has no runtime, scheduler, or HTTP dependencies.
//!
//! # Goals
//!
//! - Stable DTOs ([`Job`], [`Run`], [`Script`]) shared by scheduler, executor, and adapters
//! - A single [`SchedulerStore`] port for jobs, runs, leases, and coordinator metadata
//! - Host-injectable script identity via [`ScriptContext`] and [`ContextFactory`]
//!
//! # Non-goals
//!
//! - Running tick loops or executing scripts (see `chronon-runtime` and `chronon-executor`)
//! - Choosing a storage backend (hosts register implementations at boot)
//!
//! # Modules
//!
//! - [`store`] — [`SchedulerStore`] trait and persistence contract
//! - [`models`] — jobs, runs, revisions, workers, schedule enums
//! - [`context`] — [`ScriptContext`] and [`ContextFactory`] for script dispatch
//! - [`router`] — named store registration via [`StoreRouter`]
//! - [`error`] — [`ChrononError`] and [`Result`]
//!
//! # Getting started
//!
//! Implement [`SchedulerStore`] for your storage substrate, then register it on
//! [`StoreRouter::register_global`] or pass the store directly to `ChrononBuilder` in `chronon-runtime`.
//!
//! See also: [`DEFAULT_STORE_NAME`], [`ScriptHandle`].
pub use ;
pub use ScriptHandle;
pub use ;
pub use ;
pub use ;
pub use SchedulerStore;