cbh_command/lib.rs
1#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![cfg_attr(docsrs, doc(hidden))]
4#![expect(
5 clippy::exhaustive_enums,
6 clippy::exhaustive_structs,
7 reason = "this crate's `pub` items form an in-workspace handoff boundary to the \
8 cargo-bench-history shell crate, used only inside this workspace rather \
9 than as a stable public API. Exhaustive construction and matching by \
10 those in-workspace consumers is intended"
11)]
12
13//! Implementation crate for [`cargo-bench-history`]; do not depend on this directly.
14//!
15//! The parsed command model: the [`Command`] enum and the per-subcommand option value
16//! types (`CollectOptions`, `AnalyzeOptions`, and friends) plus the small selection enums
17//! they embed. The CLI parser produces these values and the commands consume them, so
18//! this is a dependency-light data layer between the two. Split out of the
19//! `cargo-bench-history` shell so option-type mutation testing does not drag in the clap
20//! parser or the analysis suite.
21//!
22//! Every item is re-exported flat from the crate root, so consumers write
23//! `cbh_command::Command` rather than reaching into a submodule.
24//!
25//! [`cargo-bench-history`]: https://github.com/folo-rs/folo
26
27mod command;
28
29pub use command::{
30 AnalyzeOptions, BackfillOptions, BlessOptions, CacheSelection, CollectOptions, Command,
31 ExamineOptions, ImportOptions, InstallOptions, ListOptions, ListSubject, LocalStorageSelection,
32 MachineKeyOptions, PruneOptions, UnblessOptions,
33};