3 个稳定版本

2.0.2 2024年6月6日
0.1.4 2024年6月3日

#1186 in 命令行工具

Download history 528/week @ 2024-06-01 44/week @ 2024-06-08 2/week @ 2024-06-15 3/week @ 2024-06-29

215 每月下载量

MIT 许可证

23KB
321

Snap

Crates.io License

需要帮助? 加入 Discord

Snap 是一个轻量级且高效的命令行参数处理器,灵感来自 clap

特性

  • 易用性:定义命令行参数的简单直观 API。
  • 性能:优化快速解析参数。
  • 可定制性:灵活的配置选项,以满足您的需求定制参数解析。
  • 错误处理:全面且用户友好的错误信息。
  • 帮助信息生成:自动生成帮助和用法信息。

安装

将其添加到您的 Cargo.toml

[dependencies]
snap = "2.0.2"

用法 这里是使用 Snap 的简单示例

use snap_cli::{app::App, arg::Arg, command::Command};

fn main() {
    let matches = App::new("myapp")
        .version("1.0")
        .author("Your Name <[email protected]>")
        .about("Does awesome things")
        .arg("<input> 'Sets the input file to use'")
        .arg("-v, --verbose 'Sets the level of verbosity'")
        .get_matches();

    if let Some(input) = matches.value_of("input") {
        println!("Using input file: {}", input);
    }

    if matches.is_present("verbose") {
        println!("Verbose mode is on");
    }
}

示例

更详细的示例可以在 示例目录 中找到。

use snap_cli::{app::App, arg::Arg, command::Command};

fn main() {
    let matches = App::new("myapp")
        .version("1.0")
        .author("Your Name <[email protected]>")
        .about("Does awesome things")
        .arg("<input> 'Sets the input file to use'")
        .arg("-v, --verbose 'Sets the level of verbosity'")
        .get_matches();

    if let Some(input) = matches.value_of("input") {
        println!("Using input file: {}", input);
    }

    if matches.is_present("verbose") {
        println!("Verbose mode is on");
    }
}

贡献

欢迎贡献!请随意提交问题或拉取请求。

许可证

本项目采用 MIT 许可证。

依赖

~300–770KB
~18K SLoC