Skip to main content

parse_dev_command

Function parse_dev_command 

Source
pub fn parse_dev_command(raw: &[String]) -> DevArgs
Expand description

Чистый разбор сырых аргументов командной строки в DevArgs.

Правила: первый аргумент (если он существует и не начинается с -) считается именем пакета; --verbose включает подробные логи; всё остальное попадает в extra_cargo_args. Это изолировано от clap, чтобы тестировать парсинг без запуска бинарника.

§Примеры

use light_fw_cli_core::dev::parse_dev_command;

// `light dev example-devtools-demo --release`
let args = parse_dev_command(&["example-devtools-demo".into(), "--release".into()]);
assert_eq!(args.package.as_deref(), Some("example-devtools-demo"));
assert_eq!(args.extra_cargo_args, vec!["--release"]);
assert!(!args.verbose);

// `light dev --verbose`
let args = parse_dev_command(&["--verbose".into()]);
assert!(args.verbose);
assert_eq!(args.package, None);
assert!(args.extra_cargo_args.is_empty());

// `light dev` (без имени пакета)
let empty: &[String] = &[];
let args = parse_dev_command(empty);
assert_eq!(args.package, None);
assert!(args.extra_cargo_args.is_empty());