1 个不稳定版本
0.1.0 | 2024年1月3日 |
---|
#790 在 配置
9KB
63 行
env-map
env-map 是一个旨在简化将环境变量读取到结构化格式过程的 Rust 包。通过推导 EnvMap
,您可以轻松地将环境变量映射到 Rust 结构体,支持从 .env
文件和系统环境变量中读取变量。
功能
- 轻松将环境变量映射到 Rust 结构体。
- 支持从
.env
文件或系统环境变量中读取变量。 - 简化 Rust 应用程序的配置管理。
入门指南
要在项目中使用 env-map,请将其添加到您的 Cargo.toml
[dependencies]
env-map = "0.1.0"
用法
定义您的配置结构体并推导 EnvMap
。这将自动将环境变量映射到结构体字段。
示例
#[derive(EnvMap)]
struct Config {
api_key: String,
path_to_save: String,
}
fn main() {
// This will read the API_KEY and PATH_TO_SAVE variables from the environment
let config = Config::get_config().get_or_init(Config::default);
// Use your config as needed
println!("API Key: {}", config.api_key);
println!("Path to Save: {}", config.path_to_save);
}
环境变量
env-map 将环境变量映射到您的 Config
结构体中定义的相应字段。
在提供的示例中,结构体字段为 api_key
和 path_to_save
,因此 env-map 将在环境中搜索 API_KEY
和 PATH_TO_SAVE
。
给定结构体的环境变量示例
API_KEY
:对应于Config
中的api_key
。PATH_TO_SAVE
:对应于Config
中的path_to_save
。
这些变量可以设置在应用程序同一目录下的 .env
文件中,或者作为系统环境变量。环境变量的名称自动从结构体字段名称推导,转换为大写。
贡献
欢迎为 env-map 贡献!请随时提交拉取请求、报告错误或建议功能。
许可协议
本包受 Mozilla 公共许可证 2.0 (MPL 2.0) 许可。
MPL 2.0 许可协议的概述
- 本软件包的各个部分均适用MPL 2.0许可证。
- 对本软件包中的文件进行的任何修改都必须以相同的MPL 2.0许可证提供。
- 在其他项目中使用本软件包的代码(无论是全部还是部分),不需要整个项目都采用MPL 2.0许可证,只需使用来自本软件包的部分。
有关更多详细信息,请参阅本仓库中的LICENSE文件。MPL 2.0的全文本也可以在Mozilla官方网站找到。
通过使用、贡献或分发此软件包,您同意MPL 2.0许可证的条款和条件。
依赖项
~0.5–1MB
~25K SLoC