[][src]Crate envconfig

Envconfig is a Rust library that helps to initialize configuration structure from environment variables. It makes use of custom derive macros to reduce boilerplate.

Example

#[macro_use]
extern crate envconfig_derive;
extern crate envconfig;

use std::env;
use envconfig::Envconfig;

#[derive(Envconfig)]
struct Config {
    #[envconfig(from = "DB_HOST")]
    pub db_host: String,

    #[envconfig(from = "DB_PORT")]
    pub db_port: Option<u16>,

    #[envconfig(from = "HTTP_PORT", default = "8080")]
    pub http_port: u16,
}

fn main() {
    // We assume that those environment variables are set somewhere outside
    env::set_var("DB_HOST", "localhost");
    env::set_var("DB_PORT", "5432");

    // Initialize config from environment variables
    let config = Config::init().unwrap();

    assert_eq!(config.db_host, "localhost");
    assert_eq!(config.db_port, Some(5432));
    assert_eq!(config.http_port, 8080);
}

The library uses std::str::FromStr trait to convert environment variables into custom data type. So, if your data type does not implement std::str::FromStr the program will not compile.

Enums

Error

Represents an error, that may be returned by fn init() of trait Envconfig.

Traits

Envconfig

Indicates that structure can be initialize from environment variables.

Functions

load_optional_var
load_var

Load a nenvironment variable by name and parse it into type T. The function is used by envconfig_derive to implement init().

load_var_with_default