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 //!  - String literals in well-known formats
8 //!  - Another Config instance
9 //!  - Files: TOML, JSON, YAML, INI, RON, JSON5 and custom ones defined with Format trait
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(unknown_lints)]
21 // #![warn(missing_docs)]
22 
23 pub mod builder;
24 mod config;
25 mod de;
26 mod env;
27 mod error;
28 mod file;
29 mod format;
30 mod map;
31 mod path;
32 mod ser;
33 mod source;
34 mod value;
35 
36 pub use crate::builder::{AsyncConfigBuilder, ConfigBuilder};
37 pub use crate::config::Config;
38 pub use crate::env::Environment;
39 pub use crate::error::ConfigError;
40 pub use crate::file::{File, FileFormat, FileSourceFile, FileSourceString, FileStoredFormat};
41 pub use crate::format::Format;
42 pub use crate::map::Map;
43 pub use crate::source::{AsyncSource, Source};
44 pub use crate::value::{Value, ValueKind};
45