2个版本

0.1.5 2023年9月26日
0.1.3 2023年8月28日
0.1.2 2023年8月28日
0.1.1 2023年8月28日
0.1.0 2023年8月28日

#750 in Rust模式

每月50次下载
openmood中使用

MIT许可

7KB

Jealousy

Jealousy是一个简单的包装特性,围绕envy crate,允许从环境变量中轻松反序列化任何结构。此crate在envy crate的基础上增加了以下特性

  • FromEnv特性,可以应用于任何可反序列化的结构体
  • 围绕envy crate和错误的日志记录,以便更容易调试
  • derive宏(在derive特性之后)以避免编写样板代码

安装

您可以使用cargo add jealousy或向您的Cargo.toml中的依赖项添加jealousy = "0.1.3"

特性

  • derive允许使用derive宏而不是必须实现特性

使用

from_env的默认实现对于大多数用例应该足够。以下将反序列化结构体的字段从以下环境变量中

  • CONFIG_VAR1
  • CONFIG_VAR2

特性和derive宏都使用from_env方法的默认实现。

特性

use serde::Deserialize;
use jealousy::FromEnv;

#[derive(Deserialize)]
struct Config {
    var1: String,
    var2: u16,
}

impl FromEnv for Config {
    const PREFIX: &'static str = "CONFIG";
}

Derive (需要特性:derive)

derive宏主要防止出现上面的样板代码。在其他方面功能相同。

use serde::Deserialize;
use jealousy::FromEnv;

#[derive(Deserialize, FromEnv)]
#[from_env(prefix = "CONFIG")]
struct Config {
    var1: String,
    var2: u16,
}

依赖项

~0.8–1.4MB
~31K SLoC