5 个版本 (重大更改)
0.4.0 | 2022年12月24日 |
---|---|
0.3.0 | 2022年7月28日 |
0.2.0 | 2022年7月27日 |
0.1.0 | 2022年7月24日 |
0.0.0 | 2022年7月22日 |
#545 in 配置
19KB
292 行
enve
[dependencies]
enve = "0.3"
enve
帮助您处理环境变量,并通过仅使用 类型注解 将其转换为 任何类型。
包括所有标准环境变量类型,但 enve
在底层使用 estring,因此您可以轻松地创建自己的类型。
文档
查看 示例 以了解其强大功能!
用法
基本
fn main() -> Result<(), enve::Error> {
enve::sset("E", "10");
let res: f32 = enve::get("E")?;
println!("result: {}", res);
Ok(())
}
如果您启用 structs
功能,可以使用预定义的结构体,如 SepVec
。
注意:您可以使用自定义类型作为注解!只需实现 ParseFragment
。
use enve::SepVec;
type PlusVec<T> = SepVec<T, '+'>;
type MulVec<T> = SepVec<T, '*'>;
fn main() -> Result<(), enve::Error> {
enve::sset("E", "10+5*2+3");
let res: f32 = enve::get::<PlusVec<MulVec<f32>>>("E")
.unwrap()
.iter()
.map(|m| m.iter().product::<f32>())
.sum::<f32>();
assert_eq!(res, 23.0);
Ok(())
}
如果您启用 aggs
功能,还可以使用预定义的聚合器。
use enve::{SepVec, Product, Sum, estring::Aggregate};
type PlusVec<T> = SepVec<T, '+'>;
type MulVec<T> = SepVec<T, '*'>;
fn main() -> Result<(), enve::Error> {
enve::sset("E", "10+5*2+3");
let res: f32 = enve::get::<Sum<PlusVec<Product<MulVec<f32>>>>>("E")?
.agg();
assert_eq!(res, 23.0);
Ok(())
}
联系我们
加入我们
许可证
MIT。请参阅 LICENSE 了解全文。
贡献者
pleshevskiy (Dmitriy Pleshevskiy) – 创建者,维护者。
依赖项
~42KB