migparser

This crates implements a very simple argument parser inspired by the Python one. It allows adding arguments of different types (int, uint, bool, string, float) and customize the behaviour with different options (necessary, store-true, store-false, ...).

Example

```rust use migparser::{ArgumentParser, DataType, ArgumentOption};

fn main() -> Result<(), String>{ let mut parser = ArgumentParser::new(); /* The type of argument (flag, positional, ...) is identified by the name of the argument and data type. */ parser.add_argument("positionalarg", None, DataType::String , None, None )?;

parser.add_argument("--necessaryarg",
                    Some(vec!["-na".to_owned()]),
                    DataType::Int,
                    Some(vec![ArgumentOption::Necessary]),
                    None
                    )?;
parser.add_argument("--optionalarg",
            Some(vec!["-oa".to_owned()]),
                    DataType::Float,
                    None,
                    None
                    )?;
parser.add_argument("--flagarg",
                    Some(vec!["-f".to_owned()]),
                    DataType::Bool,
                    Some(vec![ArgumentOption::StoreTrue]), /* StoreTrue or StoreFalse for flag */
                    None
                    )?;

parser.print_data();
parser.parse_arguments();
parser.print_data();

Ok(())

} ```

Run it bash cargo run miguel -na 1 -f 1 -oa 2.3