#env-var #env #serde #serde-derive #struct #host #timeout

de_env

将环境变量反序列化为结构体

1个稳定版本

1.0.0 2022年5月7日
1.0.0-rc.2 2022年5月5日
0.1.0 2022年5月1日

#1890 in 编码

Download history 22/week @ 2024-04-12 11/week @ 2024-04-19 14/week @ 2024-04-26 28/week @ 2024-05-03 17/week @ 2024-05-10 45/week @ 2024-05-17 17/week @ 2024-05-24 43/week @ 2024-05-31 31/week @ 2024-06-07 43/week @ 2024-06-14 100/week @ 2024-06-21 41/week @ 2024-06-28 45/week @ 2024-07-05 51/week @ 2024-07-12 66/week @ 2024-07-19 81/week @ 2024-07-26

243 monthly downloads

MIT license

25KB
559

de_env 帮助您轻松地将环境变量反序列化为结构体。

示例

假设我们有一个 TIMEOUTHOSTRETRY 环境变量

#[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

将环境变量反序列化为结构体。


您可能正在寻找

示例

假设我们有一个 TIMEOUTHOST 环境变量

#[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 功能,则只有 truefalse 被视为有效的布尔值。

枚举

只能反序列化单元变体。

假设我们有一个 LOG_LEVEL 环境变量设置为 INFOWARN

#[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