Click-rs

A Rust clone of Python's click, built on the structopt crate.

Documentation

Find it on Docs.rs.

Example

Re-implementing the example from structopt, add clickrs to your dependencies of your Cargo.toml: toml [dependencies] clickrs = "0.1"

And then, in your rust file: ```rust use clickrs::command; use std::path::PathBuf;

[command(name = "basic")]

[argument("debug", short, long)]

[argument("verbose", short, long, parse(from_occurrences))]

[argument("speed", short, long, default_value = "42")]

[argument("output", short, long, parse(fromosstr))]

[argument("nb_cars", short = "c", long)]

[argument("level", short, long)]

[argument("files", name = "FILE", parse(fromosstr))]

fn main( debug: bool, verbose: u8, speed: f64, output: PathBuf, nb_cars: Option, level: Vec, files: Vec, ) { println!("{:?}", speed); } ```

Using this example: ``` $ ./basic error: The following required arguments were not provided: --output

USAGE: clickrs --output --speed

For more information try --help ```

``` $ ./basic --help basic 0.1.0

USAGE: clickrs [FLAGS] [OPTIONS] --output [--] [FILE]...

FLAGS: -d, --debug -h, --help Prints help information -V, --version Prints version information -v, --verbose

OPTIONS: -l, --level ... -c, --nb-cars -o, --output -s, --speed [default: 42]

ARGS: ... ```

License

Licensed under either of

at your option.