3个稳定版本
1.0.2 | 2024年7月2日 |
---|
#442 在 配置
每月下载量 445
7KB
63 行
EnvConf
用于配置结构的简单小巧的crate。
crate生成具有
new
公共方法从环境获取值的#field_name
公共获取器
为什么是这个而不是 X-config
?
如果找不到变量或未指定默认值,我的crate会panic... 它只包含76行代码。
无论如何,没有大的理由说明为什么使用我的crate而不是酷炫的大 X-config
。
安装
- 使用cli
cargo add envconfgen
- 手动添加到Cargo.toml
# Cargo.toml
[dependencies]
envconfgen = "1.0.2"
示例
#[derive(envconfgen::EnvConfig)]
struct Config {
// `var` specifies the environment variable name to fetch the value from.
// If not provided, the uppercase field name (`TEST_VAR`) will be used.
#[var("MY_TEST_VAR")]
test_var: String,
// `default` provides a fallback value if the environment variable is not set.
// If not provided and the variable is missing, it will panic.
//
// This field does not use `var`, so it defaults to searching for `DATABASE_URL`.
#[default("nothing")]
database_url: String,
}
fn main() {
let config = Config::new(); // Generated factory method
// Crate also generates a public getters for fields
// I don't think it's a good idea to use public fields for config struct
println!("test_var: {}", config.test_var());
println!("database_url: {}", config.database_url());
}
许可证 - MIT
贡献
请随意打开问题或发送PR。
依赖关系
~270–720KB
~17K SLoC