aria_core/lib.rs
1// aria-core — generic adaptive sequencing engine
2// Zero dependencies (serde optional). Domain defined entirely by caller.
3//
4// Caller implements:
5// - `Scoreable` → their item type
6// - `Factor` → their scoring logic (one or many)
7//
8// Caller optionally overrides:
9// - `StateUpdater` → custom skill/state update logic
10//
11// Engine exposes:
12// suggest(user_id) → Result<Item>
13// feedback(user_id, item_id, signal) → Result<()>
14// get_state(user_id) → Option<&ProfileState>
15// load_state(user_id, state) → ()
16
17pub mod engine;
18pub mod factor;
19pub mod item;
20pub mod selector;
21pub mod signal;
22pub mod state;
23pub mod updater;
24pub mod serialiser;
25pub mod error;
26
27pub use engine::{Engine, EngineConfig};
28pub use factor::Factor;
29pub use item::Scoreable;
30pub use selector::Selector;
31pub use signal::Signal;
32pub use state::ProfileState;
33pub use updater::{StateUpdater, DefaultStateUpdater};
34pub use error::AriaError;
35
36pub const VERSION: &str = env!("CARGO_PKG_VERSION");