Thanks to visit codestin.com
Credit goes to github.com

Skip to content

joshring/argparse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

argparse

C3 Argparse

module main;
import std::io;
import args;

fn void main(String[] args)
{
    io::printfn(
        "\nArgs provided to the program\n"
        "============================="
    );
    foreach(arg : args)
    {
        io::printn(arg);
    }

        
    Option[]? options_read = args::parse(
        args: args,
        // argument separator, usually whitespace " " or "="
        arg_sep: " ",
        // arg_sep: "=",
        options: {
            // A long and short name, with a required associated value
            {
                .valid_values={"true", "false"},
                .short_name="r",
                .long_name="required",
                .description="required arg",
                .example_value="EXAMPLE",
                .is_required=true,
                .is_value_required=true,
            },
            // An optional, long and short name, with a required associated value (when provided)
            {
                .valid_values={},
                .short_name="d",
                .long_name="description",
                .description="optional description",
                .example_value=`"description here"`,
                .is_required=false,
                .is_value_required=true,
            },
            // A single value flag or toggle without an associated value
            {
                .short_name="n",
                .long_name="not_required",
                .description="optional arg",
                .example_value="",
                .is_required=false,
                .is_value_required=false,
            },
        }
    );
    if(catch err = options_read)
    {
        io::printn(err);
        return;
    }
    
    io::printfn(
        "\nOptions parsed by the program\n"
        "============================="
    );
    foreach(option : options_read)
    {
        io::printn(option);
        io::printn();
    }
}

About

C3 Argparse

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published