#arguments-parser #command-line #human-readable #builder #command-line-arguments

rparse

Simple human-readable command-line parser

2 releases

0.1.1 May 1, 2023
0.1.0 May 1, 2023

#106 in #human-readable

23 downloads per month

WTFPL license

6KB
51 lines

rparse

Description

Simple human-readable command-line argument parser.

Usage

rparse allows for users to build their own command-line arguments in the form of Argument structs in a vector array.

These are then passed alongside std::env::args() to a parsing module to check and fetch command-line arguments.

Example

use rparse::{parser, builder::Argument};

// Build arguments into a vector array
fn build_arguments() -> Vec<Argument> {
    let args: Vec<Argument> = vec![
        Argument::new("feeds", "--feed", "-f"),
        Argument::new("file", "--file", "-i"),
    ];
    return args;
}

fn main() {

    // Build arguments
    let args: Vec<Argument> = build_arguments();

    // Fetch arguments passed to the program
    let passed = std::env::args();

    // Parse command-line arguments
    let returned = parser::parse(args, passed).args;
    println!("{:?}", returned["feeds"]);
}

Notes

parser::parse(args, passed) returns a ParsedArguments struct. This contains a HashMap of arguments found on the command line, referenced as args. To then access this, call the key from the HashMap: parser::parse(args, passed).args["key"].

No runtime deps