3 stable releases
2.0.2 | Jun 6, 2024 |
---|---|
0.1.4 |
|
#1973 in Command line utilities
23KB
321 lines
Snap
Need Help? Join the discord
Snap is a lightweight and efficient command-line argument handler, inspired by clap
.
Features
- Ease of Use: Simple and intuitive API for defining command-line arguments.
- Performance: Optimized for fast argument parsing.
- Customizability: Flexible configuration options to tailor argument parsing to your needs.
- Error Handling: Comprehensive and user-friendly error messages.
- Help Message Generation: Automatic generation of help and usage messages.
Installation
Add this to your Cargo.toml
:
[dependencies]
snap = "2.0.2"
Usage Here's a simple example of how to use Snap:
use snap_cli::{app::App, arg::Arg, command::Command};
fn main() {
let matches = App::new("myapp")
.version("1.0")
.author("Your Name <your@email.com>")
.about("Does awesome things")
.arg("<input> 'Sets the input file to use'")
.arg("-v, --verbose 'Sets the level of verbosity'")
.get_matches();
if let Some(input) = matches.value_of("input") {
println!("Using input file: {}", input);
}
if matches.is_present("verbose") {
println!("Verbose mode is on");
}
}
Examples
More detailed examples can be found in the examples directory.
use snap_cli::{app::App, arg::Arg, command::Command};
fn main() {
let matches = App::new("myapp")
.version("1.0")
.author("Your Name <your@email.com>")
.about("Does awesome things")
.arg("<input> 'Sets the input file to use'")
.arg("-v, --verbose 'Sets the level of verbosity'")
.get_matches();
if let Some(input) = matches.value_of("input") {
println!("Using input file: {}", input);
}
if matches.is_present("verbose") {
println!("Verbose mode is on");
}
}
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License.
Dependencies
~270–740KB
~17K SLoC