Skip to main content

parlov_elicit/
lib.rs

1//! Elicitation engine for parlov: strategy selection and probe plan generation.
2//!
3//! Converts a `ScanContext` (operator-supplied scan parameters) into a
4//! `Vec<ProbeSpec>` (the ordered list of probe pairs the scheduler executes).
5//! Pure computation -- no I/O, no async.
6
7#![deny(clippy::all)]
8#![warn(clippy::pedantic)]
9#![deny(missing_docs)]
10
11pub mod chain;
12pub mod context;
13pub mod existence;
14pub mod harvest;
15pub mod registry;
16pub mod strategy;
17pub mod types;
18
19pub(crate) mod util;
20
21#[cfg(test)]
22pub(crate) mod test_utils;
23
24pub use chain::{
25    generate_dag_chained_plan, ChainRegistry, Consumer, Producer, ProducerOutput,
26    ProducerOutputKind,
27};
28pub use context::{KnownDuplicate, ScanContext, StateField};
29pub use existence::default_chain_registry;
30pub use harvest::{
31    ConditionalValidators, EtagStrength, HarvestedObservations, RangeSignals, RedirectSignals,
32};
33pub use registry::{all_strategies, generate_plan};
34pub use strategy::Strategy;
35pub use types::{BurstSpec, ChainProvenance, ProbePair, ProbeSpec, RiskLevel, StrategyMetadata};