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 | |
44 | mod features; |
45 | mod manifest; |
46 | mod workspace; |
47 | |
48 | pub mod style; |
49 | |
50 | pub use features::*; |
51 | pub use manifest::*; |
52 | pub use workspace::*; |
53 | |