| 1 | // Copyright ⓒ 2015-2016 Kevin B. Knapp and [`clap-rs` contributors](https://github.com/clap-rs/clap/graphs/contributors). |
| 2 | // Licensed under the MIT license |
| 3 | // (see LICENSE or <http://opensource.org/licenses/MIT>) All files in the project carrying such |
| 4 | // notice may not be copied, modified, or distributed except according to those terms. |
| 5 | |
| 6 | #![cfg_attr (docsrs, feature(doc_auto_cfg))] |
| 7 | #![doc = include_str!("../README.md" )] |
| 8 | #![doc (html_logo_url = "https://raw.githubusercontent.com/clap-rs/clap/master/assets/clap.png" )] |
| 9 | #![warn ( |
| 10 | missing_docs, |
| 11 | missing_debug_implementations, |
| 12 | missing_copy_implementations, |
| 13 | trivial_casts, |
| 14 | unused_allocation, |
| 15 | trivial_numeric_casts, |
| 16 | clippy::single_char_pattern |
| 17 | )] |
| 18 | #![forbid (unsafe_code)] |
| 19 | // Wanting consistency in our calls |
| 20 | #![allow (clippy::write_with_newline)] |
| 21 | // Gets in the way of logging |
| 22 | #![allow (clippy::let_and_return)] |
| 23 | // HACK https://github.com/rust-lang/rust-clippy/issues/7290 |
| 24 | #![allow (clippy::single_component_path_imports)] |
| 25 | #![allow (clippy::branches_sharing_code)] |
| 26 | // Doesn't allow for debug statements, etc to be unique |
| 27 | #![allow (clippy::if_same_then_else)] |
| 28 | // Breaks up parallelism that clarifies intent |
| 29 | #![allow (clippy::collapsible_else_if)] |
| 30 | |
| 31 | #[cfg (not(feature = "std" ))] |
| 32 | compile_error!("`std` feature is currently required to build `clap`" ); |
| 33 | |
| 34 | pub use crate::builder::ArgAction; |
| 35 | pub use crate::builder::Command; |
| 36 | pub use crate::builder::ValueHint; |
| 37 | pub use crate::builder::{Arg, ArgGroup}; |
| 38 | pub use crate::parser::ArgMatches; |
| 39 | pub use crate::util::color::ColorChoice; |
| 40 | pub use crate::util::Id; |
| 41 | |
| 42 | /// Command Line Argument Parser Error |
| 43 | /// |
| 44 | /// See [`Command::error`] to create an error. |
| 45 | /// |
| 46 | /// [`Command::error`]: crate::Command::error |
| 47 | pub type Error = crate::error::Error<crate::error::DefaultFormatter>; |
| 48 | |
| 49 | pub use crate::derive::{Args, CommandFactory, FromArgMatches, Parser, Subcommand, ValueEnum}; |
| 50 | |
| 51 | #[macro_use ] |
| 52 | #[allow (missing_docs)] |
| 53 | mod macros; |
| 54 | |
| 55 | mod derive; |
| 56 | |
| 57 | pub mod builder; |
| 58 | pub mod error; |
| 59 | pub mod parser; |
| 60 | |
| 61 | mod mkeymap; |
| 62 | mod output; |
| 63 | mod util; |
| 64 | |
| 65 | const INTERNAL_ERROR_MSG: &str = "Fatal internal error. Please consider filing a bug \ |
| 66 | report at https://github.com/clap-rs/clap/issues" ; |
| 67 | |