#string #figment #string-key #env #parsed #variables

figment_string

强制figment配置类型按字符串进行解析

1 个不稳定版本

0.1.0 2023年11月8日

#500配置

Apache-2.0

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