10 个不稳定版本 (3 个破坏性更新)
0.4.2 | 2024年7月26日 |
---|---|
0.4.1 | 2024年7月24日 |
0.3.2 | 2024年6月22日 |
0.2.2 | 2023年4月17日 |
0.1.0 | 2022年7月22日 |
#471 在 编码
每月610 次下载
用于 2 crate
17KB
383 行
envir
处理您环境的工具箱。
基本功能
在不使用功能的情况下,此crate提供简单的函数来检索环境变量的值
get
以字符串形式检索;parse
直接将值解析为期望的类型。
这些函数的 try_
版本在 get
时如果变量不存在,则返回 None
,在 parse
时返回 Error::Missing
错误。
此外,此crate还提供了一个 set
函数,类似于 std::env::set_var
,但适用于所有实现了 ToString
的类型。
最后,一个 collect
函数,可以轻松检索所有环境变量并打印。
dotenv
dotenv 特性添加了一个同名函数来加载 .env
文件。
logger
logger 特性添加了通过环境变量配置的日志记录器。
serde
serde 特性添加了将结构体从环境变量反序列化和序列化的宏。
use envir::Deserialize;
#[derive(envir::Deserialize)]
struct Config {
}
fn main() -> envir::Result {
let config: Config = envir::from_env()?;
// or
let config = Config::from_env()?;
Ok(())
}
并且将环境变量序列化到环境变量中
use envir::Serialize;
#[derive(envir::Serialize, Default)]
struct Config {
}
let config = Config::default();
config.export();
extrapolation 特性允许在默认宏属性中替换环境变量
#[derive(envir::Deserialize)]
struct Config {
#[envir(default = "/home/${USER}")]
home: String,
}
有关更多信息,请参阅envir_derive crate 文档。
依赖关系
~0–1.3MB
~20K SLoC