1 个不稳定版本
0.1.0 | 2023年11月8日 |
---|
#500 在 配置
7KB
91 行
figment_string
强制使用figment::Provider
解析的数据作为字符串。有关背景信息,请参阅这个GitHub问题和figment::Providers::Env
文档。
你是否看到过这个错误?
% env NAME=8080 cargo run
Error: invalid type: found unsigned int `8080`, expected a string for key "NAME"
in environment variable(s)
现在你可以这样做,并且即使输入是数字或布尔值等也能正常工作
# use figment::{Figment, providers::Env};
# use serde::Deserialize;
#[derive(Deserialize)]
struct Config {
#[serde(deserialize_with = "figment_string::deserialize_as_string")]
name: String,
}
fn main() {
temp_env::with_var("NAME", Some("8080"), || {
let config: Config = Figment::new()
.merge(figment::providers::Env::raw())
.extract()
.unwrap();
println!("Hello, {}!", config.name);
});
}
依赖项
~110–345KB