使用 Rust 将 env 变量解序列化为类型安全的结构体
将环境变量解序列化为类型安全的结构体
运行 cargo add envy 或将以下内容添加到您的 Cargo.toml 文件中。
envy = "0.4"典型的 envy 使用方式如下。假设您的 Rust 程序类似于以下内容 ...
这些示例使用 Serde 的 derive 特性
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct Config {
foo: u16,
bar: bool,
baz: String,
boom: Option
}
fn main() {
match envy::from_env::() {
Ok(config) => println!("{:#?}", config),
Err(error) => panic!("{:#?}", error)
}
}… 导出一些环境变量
$ FOO=8080 BAR=true BAZ=hello yourapp您应该能够访问从 env 变量中反序列化的完全类型安全的 config 结构体。
Envy 假定存在一个 env 变量,其名称与每个结构体字段完全相同。例如,一个结构体字段 foo_bar 将映射到一个名为 FOO_BAR 的 env 变量。具有 Option 类型字段的结构体在相关的 env 变量不存在时也会成功地反序列化。Envy 还支持从逗号分隔的 env 变量值中反序列化 Vec。由于 envy 是基于 serde 构建的,您可以利用 serde 的所有 属性。例如,假设您的应用程序需要一个字段,但如果未提供则希望有一个合理的默认值。
以下代码会生成一个配置了 10 倍放大比例的应用程序
[dependencies] 32
暂无开放 Issues,或尚未同步最近议题。