okcodes_config/
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//!  - 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
23pub mod builder;
24mod config;
25mod de;
26mod env;
27mod error;
28mod file;
29mod format;
30mod map;
31mod path;
32mod ser;
33mod source;
34mod value;
35
36pub use crate::builder::ConfigBuilder;
37pub use crate::config::Config;
38pub use crate::env::Environment;
39pub use crate::error::ConfigError;
40pub use crate::file::source::FileSource;
41pub use crate::file::{File, FileFormat, FileSourceFile, FileSourceString, FileStoredFormat};
42pub use crate::format::Format;
43pub use crate::map::Map;
44#[cfg(feature = "async")]
45pub use crate::source::AsyncSource;
46pub use crate::source::Source;
47pub use crate::value::{Value, ValueKind};
48
49#[allow(deprecated)]
50pub use crate::builder::AsyncConfigBuilder;
51
52// Re-export
53#[cfg(feature = "convert-case")]
54pub use convert_case::Case;