extern crate self as confroid;
#[cfg(feature = "docs")]
mod docs;
mod env;
mod error;
#[macro_use]
mod macros;
mod value;
#[cfg(feature = "docs")]
pub use docs::{Documented, FieldDoc, env_example, markdown_table};
pub use env::{Ctx, Env};
pub use error::{ConfroidError, ParserError, Result};
pub use value::FromEnv;
#[cfg(feature = "humantime")]
#[doc(hidden)]
pub use value::parse_humantime_duration as __parse_humantime_duration;
#[doc(inline)]
pub use confroid_derive::{Config, ConfigValue};
pub fn from_env<T: FromEnv>() -> Result<T> {
T::from_env(&Ctx::root(), &Env::from_os())
}
pub fn from_pairs<T, I, K, V>(pairs: I) -> Result<T>
where
T: FromEnv,
I: IntoIterator<Item = (K, V)>,
K: Into<String>,
V: Into<String>,
{
T::from_env(&Ctx::root(), &Env::from_pairs(pairs))
}
pub fn from_snapshot<T: FromEnv>(env: &Env) -> Result<T> {
T::from_env(&Ctx::root(), env)
}