Crates.io | ace |
lib.rs | ace |
version | 0.2.0 |
source | src |
created_at | 2019-07-24 08:29:09.696432 |
updated_at | 2020-01-17 04:53:48.505033 |
description | Parsing command line arguments |
homepage | |
repository | |
max_upload_size | |
id | 151313 |
size | 10,391 |
A simple command line parameter parsing library
Add this in your Cargo.toml
:
[dependencies]
ace = "0.2.0"
use ace::App;
fn main() {
let app = App::new()
.config("app", env!("CARGO_PKG_VERSION"))
.cmd("start", "Start now")
.cmd("help", "Display help information")
.cmd("version", "Display version information")
.opt("--config", "Use configuration file")
.opt("--duration", vec!["Set duration of test", "example (1ms, 1s, 1m, 1h, 1d)"])
.opt("--timeout", "Set timeout");
if let Some(cmd) = app.command() {
match cmd.as_str() {
"start" => {
dbg!(app.value("--config"));
}
"help" => {
app.print_help();
}
"version" => {
app.print_version();
}
_ => {
app.print_error_try("help");
}
}
} else {
dbg!(app.args());
}
}
Output:
app version 0.2.0
Usage:
app [COMMAND] [OPTION]
Command:
start Start now
help Display help information
version Display version information
Option:
--config Use configuration file
--duration Set duration of test
example (1ms, 1s, 1m, 1h, 1d)
--timeout Set timeout