[][src]Crate itconfig

itconfig

Simple configuration with macro for rust application.

Example usage

#[macro_use] extern crate itconfig;
use std::env;
// use dotenv::dotenv;

config! {
    DEBUG: bool => true,
    HOST: String => "127.0.0.1",

    DATABASE_URL < (
        "postgres://",
        POSTGRES_USERNAME => "user",
        ":",
        POSTGRES_PASSWORD => "pass",
        "@",
        POSTGRES_HOST => "localhost:5432",
        "/",
        POSTGRES_DB => "test",
    ),

    NAMESPACE {
        #[env_name = "MY_CUSTOM_NAME"]
        FOO: bool,

        BAR: i32 => 10,
    }
}

fn main () {
    // dotenv().ok();
    env::set_var("MY_CUSTOM_NAME", "t");

    cfg::init();
    assert_eq!(cfg::HOST(), String::from("127.0.0.1"));
    assert_eq!(cfg::DATABASE_URL(), String::from("postgres://user:pass@localhost:5432/test"));
    assert_eq!(cfg::NAMESPACE::FOO(), true);
}

Macros

config

Creates new public mod with function fo get each environment variable of mapping.

env_or

This macro returns environment variable by name and converts variable to desired type or returns default value.