1//! **clap-cargo**: Re-usable CLI flags for `cargo` plugins
2//!
3//! ## Install
4//!
5//! Add to your `Cargo.toml`:
6//!
7//! ```toml
8//! [dependencies]
9//! clap-cargo = "0.1"
10//! ```
11//!
12//! ## Examples
13//!
14//! ```rust
15//! # #[cfg(feature = "clap")] {
16//! // ...
17//! #[derive(Debug, clap::Parser)]
18//! struct Cli {
19//! #[command(flatten)]
20//! manifest: clap_cargo::Manifest,
21//! #[command(flatten)]
22//! workspace: clap_cargo::Workspace,
23//! #[command(flatten)]
24//! features: clap_cargo::Features,
25//! }
26//! # }
27//! ```
28//!
29//! ## Relevant crates
30//!
31//! Other crates that might be useful for cargo plugins:
32//! * [escargot][escargot] for wrapping `cargo-build`, `carg-run`, `cargo-test`, etc.
33//! * [cargo_metadata][cargo_metadata] for getting crate information.
34//! * [clap-verbosity][clap-verbosity] for adding logging to your CLI.
35//!
36//! [escargot]: https://crates.io/crates/escargot
37//! [cargo_metadata]: https://crates.io/crates/cargo_metadata
38//! [clap-verbosity]: https://crates.io/crates/clap-verbosity-flag
39
40#![cfg_attr(docsrs, feature(doc_auto_cfg))]
41#![warn(missing_debug_implementations)]
42#![warn(unused_extern_crates)]
43
44mod features;
45mod manifest;
46mod workspace;
47
48pub mod style;
49
50pub use features::*;
51pub use manifest::*;
52pub use workspace::*;
53