enve helps you work with environment variables and convert it to any type using only type annotations.
.github | ||
.vim | ||
examples | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
README.md |
enve
enve
helps you work with environment variables and convert it to any type
using only type annotations.
Look at the examples to see the power!
All standard environment variable types are included, but enve
under the hood
uses estring, so you can easily create
your own type.
Getting started
use enve::SepVec;
type MinusVec<T> = SepVec<T, '-'>;
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<MinusVec<MulVec<f32>>>>("E")
.unwrap()
.iter()
.map(|p| {
p.iter()
.map(|m| m.iter().product::<f32>())
.reduce(|acc, v| acc - v)
.unwrap_or_default()
})
.sum::<f32>();
println!("result: {}", res);
Ok(())
}
Installation
The MSRV is 1.39.0
Add enve = { version = "0.1", features = ["prim", "vec"] }
as a dependency in
Cargo.toml
.
Cargo.toml
example:
[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <user@rust-lang.org>"]
[dependencies]
enve = { version = "0.1", features = ["prim", "vec"] }
License
MIT. See LICENSE to see the full text.
Contributors
pleshevskiy (Dmitriy Pleshevskiy) – creator, maintainer.