2 unstable releases

0.2.0 Jun 18, 2019
0.1.0 Jun 15, 2019

#2470 in Parser implementations

Download history 23/week @ 2023-11-27 7/week @ 2023-12-04 10/week @ 2023-12-11 16/week @ 2023-12-18 13/week @ 2023-12-25 4/week @ 2024-01-15 8/week @ 2024-01-29 7/week @ 2024-02-05 15/week @ 2024-02-12 34/week @ 2024-02-19 65/week @ 2024-02-26 94/week @ 2024-03-04 25/week @ 2024-03-11

219 downloads per month

MIT/Apache

20KB
392 lines

windows-args Appveyor Crates.io Docs

A command-line argument parser for Windows, copied almost wholesale from the rust standard library.

[dependencies]
windows-args = "0.2"
use windows_args::Args;

// for a complete command line, with executable
for arg in Args::parse_cmd(r#"foobar.exe to "C:\Program Files\Hi.txt" now"#) {
    println!("{}", arg);
}

// for just args, without an executable
for arg in Args::parse_args(r#"to "C:\Program Files\Hi.txt" now"#) {
    println!("{}", arg);
}

lib.rs:

windows-args

A command-line argument parser for Windows, copied almost wholesale from the rust standard library.

Offerings include:

  • Args and ArgsOs, iterators that produce String and OsString values respectively.
  • Two parsing functions, Args::parse_cmd and Args::parse_args.
    • These differ in how they parse the first argument, and in how they treat empty input.

Due to limitations of the current implementation, this crate currently can only be used on Windows.

use windows_args::Args;

// to parse a complete command (beginning with an executable name)
let mut args = Args::parse_cmd(r#"foobar.exe to "C:\Program Files\Hi.txt" now"#);

// to parse arguments to a command (NOT beginning with an executable name)
let mut args = Args::parse_args(r#"foobar to "C:\Program Files\Hi.txt" now"#);

assert_eq!(args.next(), Some("foobar".to_string()));
assert_eq!(args.next(), Some("to".to_string()));
assert_eq!(args.next(), Some("C:\\Program Files\\Hi.txt".to_string()));
assert_eq!(args.next(), Some("now".to_string()));
assert_eq!(args.next(), None);

Dependencies

~46KB