config_maint/lib.rs
1//! Config organizes hierarchical or layered configurations for Rust applications.
2//!
3//! Config lets you set a set of default parameters and then extend them via merging in
4//! configuration from a variety of sources:
5//!
6//! - Environment variables
7//! - Another Config instance
8//! - Remote configuration: etcd, Consul
9//! - Files: JSON, YAML, TOML, HJSON
10//! - Manual, programmatic override (via a `.set` method on the Config instance)
11//!
12//! Additionally, Config supports:
13//!
14//! - Live watching and re-reading of configuration files
15//! - Deep access into the merged configuration via a path syntax
16//! - Deserialization via `serde` of the configuration or any subset defined via a path
17//!
18//! See the [examples](https://github.com/mehcode/config-rs/tree/master/examples) for
19//! general usage information.
20#![allow(dead_code)]
21#![allow(unused_imports)]
22#![allow(unused_variables)]
23#![allow(unknown_lints)]
24// #![warn(missing_docs)]
25
26#[macro_use]
27extern crate serde;
28
29#[cfg(test)]
30#[macro_use]
31extern crate serde_derive;
32
33#[macro_use]
34extern crate nom;
35
36#[macro_use]
37extern crate lazy_static;
38
39#[cfg(feature = "toml")]
40extern crate toml;
41
42#[cfg(feature = "json")]
43extern crate serde_json;
44
45#[cfg(feature = "yaml")]
46extern crate yaml_rust;
47
48#[cfg(feature = "hjson")]
49extern crate serde_hjson;
50
51#[cfg(feature = "ini")]
52extern crate ini;
53
54mod config;
55mod de;
56mod env;
57mod error;
58mod file;
59mod path;
60mod ser;
61mod source;
62mod value;
63
64pub use config::Config;
65pub use env::Environment;
66pub use error::ConfigError;
67pub use file::{File, FileFormat, FileSourceFile, FileSourceString};
68pub use source::Source;
69pub use value::Value;