8 个不稳定版本 (3 个重大更改)
0.4.1 | 2024年7月24日 |
---|---|
0.4.0 | 2024年7月23日 |
0.3.2 | 2024年6月22日 |
0.2.2 | 2023年4月17日 |
0.1.0 | 2022年7月22日 |
#163 in #环境变量
每月下载量 449
在 2 个 crate 中使用 (via envir)
11KB
218 行
这些过程宏帮助您实现 envir::Serialize
和 envir::Deserialize
特性。
属性
默认情况下,这些宏使用大写字段名作为环境变量名。
use envir::Deserialize;
#[derive(envir::Deserialize, Debug)]
struct Config {
home: String,
}
let config = Config::from_env();
dbg!(config);
$ cargo run
[src/main.rs:12] config = Ok(
Config {
home: "/home/sanpi",
}
)
容器
prefix
: 将此前缀设置到字段名。
use envir::Deserialize;
#[derive(envir::Deserialize, Debug)]
#[envir(prefix = "APP_")]
struct Config {
dir: String,
}
let config = Config::from_env();
dbg!(config);
$ export APP_DIR=~/.config/app
$ cargo run
[src/main.rs:12] config = Ok(
Config {
dir: "/home/sanpi/.config/app",
}
)
字段
name
: 使用此名称代替环境变量的字段名。如果prefix
已定义,则也添加到该名称前;export_with
: 使用此函数导出此字段。给定的函数必须可调用为fn (T) -> HashMap<String, String<>
;load_with
: 使用此函数加载此字段。给定的函数必须可调用为fn (HashMap<String, String<>) -> envir::Result<T, T<>
;noprefix
: 对于此字段不添加prefix
;nested
: 此字段应该递归地进行序列化和反序列化。
use envir::Deserialize;
#[derive(envir::Deserialize, Debug)]
#[envir(prefix = "APP_")]
struct Config {
dir: String,
}
let config = Config::from_env();
dbg!(config);
$ export APP_DIR=~/.config/app
$ cargo run
[src/main.rs:12] config = Ok(
Config {
dir: "/home/sanpi/.config/app",
}
)
依赖关系
~0.6–1MB
~23K SLoC