10 个版本

0.5.0 2022 年 1 月 4 日
0.4.0 2020 年 9 月 14 日
0.3.2 2020 年 7 月 13 日
0.2.0 2020 年 7 月 12 日
0.1.3 2020 年 7 月 10 日

#clap 中排名 155

每月下载量 50
structconf 中使用

MIT 许可证

27KB
640 行代码(不含注释)

StructConf

在编译时将参数解析与配置文件相结合。

Build Status docs.rs version


StructConf 是一个小型派生宏,允许您在编译时将 clap 的参数解析和 rust-ini 的配置文件解析结合起来。它受到 structopt 参数解析器的启发。

StructConf 旨在相对小巧且简单。以下是它的当前优势:

  • 配置文件中可用、参数解析器中可用、两者都有或都不用。
  • 可配置的选项名称。
  • 支持自定义类型。
  • 带有 Option 的可选字段。
  • 自定义默认表达式。
  • 详尽的错误信息。
  • 彻底测试。

小型示例

use structconf::{clap, StructConf};

#[derive(Debug, StructConf)]
struct ServerConfig {
    #[conf(help = "The public key")]
    pub public_key: String,
    #[conf(no_file, long = "your-secret", help = "Your secret API key")]
    pub secret_key: String,
    #[conf(default = "100", help = "timeout in seconds")]
    pub timeout: i32,
}

pub fn main() {
    let app = clap::App::new("demo");
    let conf = ServerConfig::parse(app, "config.ini");
    println!("Parsed config: {:#?}", conf);
}

有关如何使用 Structconf 的更多详细信息,请参阅 文档 并查看 示例


lib.rs:

请访问 docs.rs/structconf 以获取文档。

依赖项

~2MB
~42K SLoC