1个稳定版本
1.0.0 | 2022年5月7日 |
---|---|
1.0.0-rc.2 |
|
0.1.0 |
|
#1890 in 编码
243 monthly downloads
25KB
559 行
de_env
帮助您轻松地将环境变量反序列化为结构体。
示例
假设我们有一个 TIMEOUT
、HOST
和 RETRY
环境变量
#[derive(serde::Deserialize, Debug)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
struct Config {
timeout: u16,
host: std::net::IpAddr,
retry: bool,
}
let config: Config = de_env::from_env()?;
println!("{config:#?}");
lib.rs
:
de_env
将环境变量反序列化为结构体。
您可能正在寻找
示例
假设我们有一个 TIMEOUT
和 HOST
环境变量
#[derive(serde::Deserialize, Debug)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
struct Config {
timeout: u16,
host: std::net::IpAddr,
}
let config: Config = de_env::from_env()?;
println!("{config:#?}");
支持的原始数据类型
布尔值解析
布尔值解析不区分大小写。
如果启用 truthy-falsy
功能(默认)
- 真值
true
或其缩写t
yes
或其缩写y
on
1
- 假值
false
或其缩写f
no
或其缩写n
off
0
如果禁用 truthy-falsy
功能,则只有 true
和 false
被视为有效的布尔值。
枚举
只能反序列化单元变体。
假设我们有一个 LOG_LEVEL
环境变量设置为 INFO
或 WARN
#[derive(serde::Deserialize, Debug)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
enum Level {
Info,
Warn
}
#[derive(serde::Deserialize, Debug)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
struct Config {
log_level: Level,
}
let config: Config = de_env::from_env()?;
println!("{config:#?}");
不支持的类型
此软件包的目标是将环境变量反序列化为结构体,不支持其他类型。自定义类型必须能够从 支持的原始数据类型 反序列化。
依赖项
~110–345KB