Skip to main content

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};