#env-var #parse #value #dotenv #set #struct #string

envir

Deserialize/serialize struct from/to env

4 releases

0.2.2 Apr 17, 2023
0.2.1 Apr 14, 2023
0.2.0 Apr 14, 2023
0.1.0 Jul 22, 2022

#1147 in Encoding

Download history 5/week @ 2024-02-21 11/week @ 2024-02-28 37/week @ 2024-03-06 33/week @ 2024-03-13 12/week @ 2024-03-20 28/week @ 2024-03-27 15/week @ 2024-04-03

58 downloads per month
Used in 2 crates

MIT license

15KB
336 lines

envir

Github actions Gitlab CI

A toolbox to deal with your environment.

Basics

Without feature, this crate provide simple functions to retreive the value of an environment variable:

  • get to retreive as string;
  • parse to directly parse the value as a desired type.

The try_ version of theire functions return None if the variable doens’t exist when get and parse return an Error::Missing error.

In addition this crate provide a set function, like std::env::set_var but works for all types implement ToString.

Finally, a collect function to retreive all environment variables in a easy to print collection.

dotenv

The dotenv feature adds an eponyme function to load .env file.

serde

The serde feature adds macro to deserialize struct from env:

#[derive(envir::Deserialize)]
struct Config {
}

let config = envir::from_env()?;
// or
let config = Config::from_env()?;

And serialize to env:

#[derive(envir::Serialize, Default)]
struct Config {
}

let config = Config::default();
config.export();

The extrapolation feature allows environment variables replacement in the default macro attribute:

#[derive(envir::Deserialize)]
struct Config {
    #[envir(defaut = "/home/${USER}")]
    home: String,
}

You can read the envir_derive crate documentation for more informations.

Dependencies

~0–620KB
~11K SLoC