clap/examples/typed-derive.md

87 lines
2 KiB
Markdown
Raw Normal View History

*Jump to [source](typed-derive.rs)*
**This requires enabling the `derive` feature flag.**
2022-03-14 14:43:17 +00:00
Help:
```console
$ typed-derive --help
clap
USAGE:
typed-derive[EXE] [OPTIONS]
OPTIONS:
2022-03-14 14:53:31 +00:00
--bind <BIND> Handle IP addresses
2022-03-14 14:43:17 +00:00
-D <DEFINES> Hand-written parser for tuples
-h, --help Print help information
2022-03-14 14:45:43 +00:00
-I <DIR> Allow invalid UTF-8 paths
2022-03-14 14:43:17 +00:00
-O <OPTIMIZATION> Implicitly using `std::str::FromStr`
2022-03-14 14:49:46 +00:00
--sleep <SLEEP> Allow human-readable durations
2022-03-14 14:43:17 +00:00
```
Optimization-level (number)
```console
$ typed-derive -O 1
2022-03-14 14:53:31 +00:00
Args { optimization: Some(1), include: None, bind: None, sleep: None, defines: [] }
2022-03-14 14:43:17 +00:00
$ typed-derive -O plaid
? failed
error: Invalid value "plaid" for '-O <OPTIMIZATION>': invalid digit found in string
For more information try --help
```
2022-03-14 14:45:43 +00:00
Include (path)
```console
$ typed-derive -I../hello
2022-03-14 14:53:31 +00:00
Args { optimization: None, include: Some("../hello"), bind: None, sleep: None, defines: [] }
```
IP Address
```console
$ typed-derive --bind 192.0.0.1
Args { optimization: None, include: None, bind: Some(192.0.0.1), sleep: None, defines: [] }
$ typed-derive --bind localhost
? failed
error: Invalid value "localhost" for '--bind <BIND>': invalid IP address syntax
For more information try --help
2022-03-14 14:49:46 +00:00
```
Time
```console
$ typed-derive --sleep 10s
2022-03-14 14:53:31 +00:00
Args { optimization: None, include: None, bind: None, sleep: Some(Duration(10s)), defines: [] }
2022-03-14 14:49:46 +00:00
$ typed-derive --sleep forever
? failed
error: Invalid value "forever" for '--sleep <SLEEP>': expected number at 0
For more information try --help
2022-03-14 14:45:43 +00:00
```
2022-03-14 14:43:17 +00:00
Defines (key-value pairs)
```console
$ typed-derive -D Foo=10 -D Alice=30
2022-03-14 14:53:31 +00:00
Args { optimization: None, include: None, bind: None, sleep: None, defines: [("Foo", 10), ("Alice", 30)] }
$ typed-derive -D Foo
? failed
2022-02-07 19:28:48 +00:00
error: Invalid value "Foo" for '-D <DEFINES>': invalid KEY=value: no `=` found in `Foo`
For more information try --help
$ typed-derive -D Foo=Bar
? failed
2022-02-07 19:28:48 +00:00
error: Invalid value "Foo=Bar" for '-D <DEFINES>': invalid digit found in string
For more information try --help
```