# cli-parser ## Introduction This library provides a very light-weight API, for a singular purpose: Collect the command line arguments in 3 `std` structures based on the number of dashes prefixed. - Vector $\leftarrow$ 0 dashes $\leftarrow$ Positional arguments (values only). - HashSet $\leftarrow$ 1 dash $\leftarrow$ Flags (keys only). - HashMap $\leftarrow$ 2 dashes $\leftarrow$ Key - value pairs. ## Syntax example: ```bash ./my_program --debug_level=2 -verb path/to/file ``` These arguments are classified as: - Positional: 1. `./my_program` 2. `path/to/file` - Flags: 1. `verb` - Pairs: 1. `debug_level` with value `2` ## Usage Just initialize the CLIParser struct and you are good to go. ```rust use cliparser::CLIParser; fn main() { // Initialize parser let parser = CLIParser::new().init().unwrap(); // Extract parsed data structures let posit_arguments = parser.posits.clone(); // Vector let flags = parser.flags.clone(); // HashSet let pairs = parser.pairs.clone(); // HashMap } ```