27个版本

0.8.0 2024年8月9日
0.7.2 2024年2月15日
0.7.0 2024年1月21日
0.6.8 2023年6月1日
0.3.1 2021年3月5日

#66 in 命令行界面

Download history 10867/week @ 2024-05-02 12721/week @ 2024-05-09 14695/week @ 2024-05-16 15714/week @ 2024-05-23 17470/week @ 2024-05-30 12831/week @ 2024-06-06 12061/week @ 2024-06-13 14749/week @ 2024-06-20 15741/week @ 2024-06-27 7326/week @ 2024-07-04 6163/week @ 2024-07-11 7428/week @ 2024-07-18 6571/week @ 2024-07-25 6656/week @ 2024-08-01 5152/week @ 2024-08-08 6691/week @ 2024-08-15

26,426每月下载量
用于 guff_css

WTFPL 许可证

65KB
1K SLoC

Argyle

docs.rs changelog
crates.io ci deps.rs
license contributions welcome

此crate包含了一个名为Argue的通用Unix平台CLI参数解析器。与clap等更健壮的库不同,Argue不保存有关预期或必需参数的信息;它只是将原始参数(std::env::args_os)解析成一致的状态,以便实现者可以按需查询。

后处理主要留给实现库以自己的方式、在适当的时间来完成。 Argue公开了一些快速查询集合中各个元素的方法,但它也可以被解引用为切片或消耗到一个拥有向量中,以便于完全手动处理(如果需要的话)。

参数以拥有的字节形式处理和保存,而不是(OS)字符串,再次完全将后续转换的选择留给实现者。

对于简单应用程序,这种通用的方法可以显著减少处理CLI参数的开销,但由于处理留给了实现库,对于更复杂的使用案例可能过于繁琐或受限。

安装

argyle添加到您的dependencies中的Cargo.toml,如下所示:

[dependencies]
argyle = "0.8.*"

示例

一般设置可能如下所示。有关更多信息和注意事项,请参阅Argue的文档。

use argyle::{
    Argue,
    ArgyleError,
    FLAG_HELP,
    FLAG_REQUIRED,
    FLAG_VERSION,
};

fn main() {
    if let Err(e) = _main() {
        match(e) {
            // A "-V" or "--version" flag was present.
            Err(ArgyleError::WantsVersion) => {
                println!("MyApp v{}", env!("CARGO_PKG_VERSION"));
            },
            // A "-h" or "--help" flag was present.
            Err(ArgyleError::WantsHelp) => {
                println!("Help stuff goes here...");
            },
            // An actual error!
            Err(e) => {
                eprintln!("{}", e);
                std::process::exit(1);
            },
        }
    }
}

fn _main() -> Result<(), ArgyleError> {
    // Parse CLI arguments.
    let args = Argue::new(FLAG_HELP | FLAG_REQUIRED | FLAG_VERSION)?;

    // Pull the pieces you want.
    let clean: bool = args.switch(b"--clean");
    let prefix: Option<&[u8]> = args.option2(b"-p", b"--prefix");

    ...
}

许可证

另请参阅:CREDITS.md

版权 © 2024 Blobfolio, LLC <[email protected]>

此作品是免费的。您可以在Do What The Fuck You Want To Public License,Version 2的条款下重新分发或修改它。

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

无运行时依赖