一个分层配置库,它的简洁程度令人难以置信。
Figment 是一个半层次结构的配置库,适用于 Rust,因此不需要使用 con, _不可思议。
use serde::Deserialize;
use figment::{Figment, providers::{Format, Toml, Json, Env}};
#[derive(Deserialize)]
struct Package {
name: String,
authors: Vec,
publish: Option,
// ... and so on ...
}
#[derive(Deserialize)]
struct Config {
package: Package,
rustc: Option,
// ... and so on ...
}
let config: Config = Figment::new()
.merge(Toml::file("Cargo.toml"))
.merge(Env::prefixed("CARGO_"))
.merge(Env::raw().only(&["RUSTC", "RUSTDOC"]))
.join(Json::file("Cargo.json"))
.extract()?;请参阅 文档 以获取详细的使用指南。 信息。
在 Cargo.toml 中添加以下内容,以启用所需的内置提供程序:
figment = { version = "0.10", features = ["toml"] }以下外部库实现了 Figment 提供程序:
包装现有提供程序。对于以 _FILE 结尾的任何键(可配置),会发出一个不带 _FILE 后缀的键,其值与原始键的值对应的文件的内容相对应。
[dependencies]
暂无开放 Issues,或尚未同步最近议题。