2个版本
0.1.5 | 2023年9月26日 |
---|---|
0.1.3 | 2023年8月28日 |
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#750 in Rust模式
每月50次下载
在openmood中使用
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