This repository has been archived on 2024-07-25. You can view files and clone it, but cannot push or open issues or pull requests.
enve/itconfig
2019-12-27 23:57:13 +03:00
..
src feat: add custom meta for vars 2019-12-27 23:57:13 +03:00
Cargo.toml feat: add custom meta for vars 2019-12-27 23:57:13 +03:00
README.md feat: add custom meta for vars 2019-12-27 23:57:13 +03:00

itconfig

Easy build a configs from environment variables and use it in globally.

We recommend you start with the documentation.

Example usage

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

config! {
    DEBUG: bool => true,
    HOST: String => "127.0.0.1".to_string(),
    
    NAMESPACE {
        #[env_name = "MY_CUSTOM_NAME"]
        FOO: bool,
        
        BAR: i32 => 10,
        
        #[cfg(feature = "feature")]
        #[env_name = "POSTGRES_CONNECTION_STRING"]
        DATABASE_URL: String
    }
}

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::NAMESPACE::FOO(), true);
}

Roadmap

  • Add namespace for variables
  • Custom env name
  • Support feature config and other meta directives
  • Concat env variables to one variable

License

[MIT] © Ice Temple

Contributors

pleshevskiy (Dmitriy Pleshevskiy) creator, maintainer.