Lines Matching +full:all +full:- +full:apis
4 //! 1. [How does `clap` compare to structopt?](#how-does-clap-compare-to-structopt)
5 …2. [What are some reasons to use `clap`? (The Pitch)](#what-are-some-reasons-to-use-clap-the-pitch)
6 …me reasons *not* to use `clap`? (The Anti Pitch)](#what-are-some-reasons-not-to-use-clap-the-anti-…
7 //! 4. [Reasons to use `clap`](#reasons-to-use-clap)
8 … [How many approaches are there to create a parser?](#how-many-approaches-are-there-to-create-a-pa…
9 //! 3. [When should I use the builder vs derive APIs?](#when-should-i-use-the-builder-vs-derive-api…
10 //! 4. [Why is there a default subcommand of help?](#why-is-there-a-default-subcommand-of-help)
15 //! in a critical or harsh manner. All the argument parsing libraries out there (to
17 //! comes down to personal taste when all other factors are equal. When in doubt,
18 //! try them all and pick one that you enjoy :). There's plenty of room in the Rust
22 //! [argparse-benchmarks](https://github.com/rust-cli/argparse-benchmarks-rs).
29 //! [maintenance mode](https://github.com/TeXitoi/structopt/issues/516#issuecomment-989566094)
33 //! - Easier cross-linking in documentation
34 //! - [Documentation parity](../examples)
35 //! - Tighter design feedback loop, ensuring all new features are designed with
37 //! - Clearer endorsement of `structopt`
40 //! - [`clap` v3 CHANGELOG](../CHANGELOG.md#300---2021-12-31)
41 //! - [`structopt` migration guide](../CHANGELOG.md#migrate-structopt)
45 //! `clap` is as fast, and as lightweight as possible while still giving all the features you'd exp…
49 …all those custom dials it can get complex. `clap` is also opinionated about parsing. Even though s…
53 //! * You want all the nice CLI features your users may expect, yet you don't want to implement th…
54 //! * In addition to the point above, you don't want to sacrifice performance to get all those nic…
61 //! The following APIs are supported:
62 //! - [Derive][crate::_derive::_tutorial]
63 //! - [Builder][crate::_tutorial]
66 //! - [YAML](https://github.com/clap-rs/clap/issues/3087)
67 //! - [docopt](http://docopt.org/)-inspired [usage parser](https://github.com/clap-rs/clap/issues/3…
68 //! - [`clap_app!`](https://github.com/clap-rs/clap/issues/2835)
70 //! There are also experiments with other APIs:
71 //! - [fncmd](https://github.com/yuhr/fncmd): function attribute
72 //! - [clap-serde](https://github.com/aobatact/clap-serde): create an `Command` from a deserializer
74 //! ### When should I use the builder vs derive APIs?
77 //! - Easier to read, write, and modify
78 //! - Easier to keep the argument declaration and reading of argument in sync
79 //! - Easier to reuse, e.g. [clap-verbosity-flag](https://crates.io/crates/clap-verbosity-flag)
81 //! The [Builder API][crate::_tutorial] is a lower-level API that someone might want to use for
82 //! - Faster compile times if you aren't already using other procedural macros
83 //! - More flexibility, e.g. you can look up an [arguments values][crate::ArgMatches::get_many],
88 //! You can [interop between Derive and Builder APIs][crate::_derive#mixing-builder-and-derive-apis…
92 …and of `help` when other subcommands have been defined manually. So it's opt-in(ish), being that y…
94 //! Also, if the user defined a `help` subcommand themselves, the auto-generated one wouldn't be ad…