enve helps you work with environment variables and convert it to any type using only type annotations.
Go to file
Dmitriy Pleshevskiy 0024483bed
chore: reexport estring types only with feature
2022-07-27 18:48:30 +03:00
.github ci: update the msrv in matrix 2022-07-27 18:45:46 +03:00
.vim refac: improve core design 2022-07-22 13:05:54 +03:00
examples doc: rewrite documentation 2022-07-24 18:53:04 +03:00
src chore: reexport estring types only with feature 2022-07-27 18:48:30 +03:00
.gitignore chore: refac gitignore 2022-07-21 19:09:02 +03:00
CODE_OF_CONDUCT.md chore: add code of conduct 2021-02-12 01:31:52 +03:00
Cargo.lock deps: bump estring to v0.2.0 2022-07-27 18:43:48 +03:00
Cargo.toml deps: bump estring to v0.2.0 2022-07-27 18:43:48 +03:00
LICENSE refac: move core to estring crate 2022-07-23 16:21:53 +03:00
README.md doc: fix docs url 2022-07-27 12:35:38 +03:00

README.md

enve

Crates.io docs.rs GitHub Workflow Status The MSRV

[dependencies]
enve = "0.1"

enve helps you work with environment variables and convert it to any type using only type annotations.

All standard environment variable types are included, but enve under the hood uses estring, so you can easily create your own type.

Documentation

Look at the examples to see the power!

Usage

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(())
}

Contact Us

Join us in:

Matrix

License

MIT. See LICENSE to see the full text.

Contributors

pleshevskiy (Dmitriy Pleshevskiy) creator, maintainer.