From c95f36d4120767a0571f874b41ace096b0cc806a Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Sat, 2 Oct 2021 00:03:18 +0200 Subject: [PATCH] readme --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ examples/compiler.rs | 1 + 2 files changed, 39 insertions(+) diff --git a/README.md b/README.md index 6ab7018..6aaebef 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,41 @@ # badargs A zero-dependency full type-safe argument parser. + +`badargs` handles non Utf8 input by just printing an error and exiting the program gracefully. + +# How to use + +```rust +use badargs::arg; + +arg!(OutFile: "output", 'o' -> String); +arg!(Force: "force", 'f' -> bool); +arg!(OLevel: "optimize" -> usize); + +fn main() { + let args = badargs::badargs!(OutFile, Force, OLevel); + + let outfile = args.get::(); + let force = args.get::(); + let o_level = args.get::(); + + println!("output: {:?}", outfile); + println!("force: {:?}", force); + println!("o-level: {:?}", o_level); + println!("other args: {:?}", args.unnamed()) + +} +``` + +Use the `badargs::arg!` macro to declare arguments like this: +`arg!(Binding, long_name, optional_short_name -> return_type)` + +The following return types are currently available: +* String +* bool +* isize +* usize + +Boolean values can only be `None` or `Some`. +The other values can be `None` or `Some(_)` \ No newline at end of file diff --git a/examples/compiler.rs b/examples/compiler.rs index cd421b2..fb5d84b 100644 --- a/examples/compiler.rs +++ b/examples/compiler.rs @@ -14,4 +14,5 @@ fn main() { println!("output: {:?}", outfile); println!("force: {:?}", force); println!("o-level: {:?}", o_level); + println!("other args: {:?}", args.unnamed()) }