Module cli_parser

Module cli_parser 

Source
Expand description

CLI argument parser

This module provides the CliParser which parses Unix-style command-line arguments into a structured HashMap. It handles:

  • Positional arguments
  • Short options (-v)
  • Long options (--verbose)
  • Options with values (-o file.txt, --output=file.txt)
  • Type conversion and validation

§Example

use dynamic_cli::parser::cli_parser::CliParser;
use dynamic_cli::config::schema::{CommandDefinition, ArgumentDefinition, ArgumentType};

let definition = CommandDefinition {
    name: "process".to_string(),
    aliases: vec![],
    description: "Process files".to_string(),
    required: false,
    arguments: vec![
        ArgumentDefinition {
            name: "input".to_string(),
            arg_type: ArgumentType::Path,
            required: true,
            description: "Input file".to_string(),
            validation: vec![],
        }
    ],
    options: vec![],
    implementation: "handler".to_string(),
};

let parser = CliParser::new(&definition);
let args = vec!["file.txt".to_string()];
let parsed = parser.parse(&args).unwrap();

assert_eq!(parsed.get("input"), Some(&"file.txt".to_string()));

Structs§

CliParser
CLI argument parser