#arguments-parser #command-line-arguments #枚举 #辅助

入口

一个命令行参数解析库,提供辅助工具

3 个版本 (破坏性更新)

0.3.0 2020年11月6日
0.2.0 2019年9月28日
0.1.0 2019年6月4日

Rust 模式 中排名 #882

MIT 许可证

20KB
420

entrance

Crates.io Document CircleCI

类型辅助命令行参数解析器

entrance 提供解析命令行参数的类型辅助工具。

简单用法

use entrance::{Arguments, Options};
use std::env;
use std::path::PathBuf;

#[derive(Options, PartialEq)]
enum Opts {
    #[entrance(description = "Print help message")]
    #[entrance(short = 'h')]
    #[entrance(informative(entrance::help))]
    Help,

    #[entrance(description = "Print version infomation")]
    #[entrance(informative(entrance::version))]
    Version,

    #[entrance(description = "Use verbose output")]
    #[entrance(short = 'v')]
    Verbose,
}

#[derive(Arguments)]
struct Args {
    #[entrance(description = "The number of lines")]
    num: f64,

    #[entrance(description = "Path to a file")]
    file: PathBuf,
}

type Command = entrance::Command<Opts, Args>;

fn main() {
    let command = Command::new(env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"));
    let (opts, args) = command.parse_or_exit(env::args());

    if opts.contains(&Opts::Verbose) {
        println!("enabled the verbose output");
    }

    println!("1st argument: \"{}\"", args.num);
    println!("2nd argument: \"{}\"", args.file.display());
}

结构和特性

命令

此结构提供解析命令行参数的工具。

在解析命令行参数之前,需要使用关联函数 new 创建实例,然后调用实例的 parse

选项

对此可用 derive 宏。

限制:derive 宏仅支持没有字段的 Enum。

参数

对此可用 derive 宏。

限制:宏仅支持成员实现 FromStr 的结构。

依赖

~300–760KB
~18K SLoC