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或其缩写tyes或其缩写yon1
- 假值
false或其缩写fno或其缩写noff0
如果禁用 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