9 个不稳定版本

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日

#478 in 配置

每月下载量21次

MIT 许可证

20KB
99

StructConf

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

Build Status docs.rs version


StructConf 是一个小的 derive 宏,允许您在编译时将来自 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 的更多详细信息,请参阅 文档 并查看 示例

依赖项

~3.5MB
~65K SLoC