1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! `no_std`, zero-allocation, const-generic command-line argument parser.
//!
//! Everything lives on the stack. No `alloc`, no `Box`, no `Vec`, no `String`.
//! Capacity is fixed at compile time through const generics, so the parser
//! stays within those bounds.
//!
//! ```
//! use arf::{Arg, Parser};
//!
//! let parser = Parser::<4>::new("example", "0.1.0")
//! .no_auto_help()
//! .no_auto_version()
//! .arg(Arg::flag("verbose").short('v').long("verbose"))
//! .arg(Arg::option("output").short('o').long("output"));
//!
//! let matches = parser.parse::<4, _>(&["example", "-v", "-o", "out.txt"])?;
//! assert!(matches.is_present("verbose"));
//! assert_eq!(matches.value_of("output"), Some("out.txt"));
//! # Ok::<_, arf::ParseError<'static>>(())
//! ```
//!
//! See the [`Parser`] docs for the const-generic capacity and
//! [`SubCommand`] for subcommand routing.
extern crate std;
pub use ;
pub use ;
pub use Matches;
pub use ;
pub use FromArgValue;