Struct irx_config::config::ConfigBuilder
source · pub struct ConfigBuilder { /* private fields */ }
Expand description
The builder for Config
structure.
Implementations§
source§impl ConfigBuilder
impl ConfigBuilder
sourcepub fn append_parser<P>(self, parser: P) -> Selfwhere
P: Parse + 'static,
pub fn append_parser<P>(self, parser: P) -> Selfwhere P: Parse + 'static,
Append a parser to Config
. First appended parser will have highest priority during (re)load merge, the last
one will have lowest priority.
Example
use irx_config::parsers::{env, json};
use irx_config::ConfigBuilder;
let config = ConfigBuilder::default()
.append_parser(
json::ParserBuilder::default()
.default_path("config.json")
.build()?,
)
.append_parser(
env::ParserBuilder::default()
.default_prefix("APP_")
.build()?,
)
.load()?;
sourcepub fn sealed_suffix<S>(self, suffix: S) -> Selfwhere
S: Into<String>,
pub fn sealed_suffix<S>(self, suffix: S) -> Selfwhere S: Into<String>,
Set suffix for keys to mark them as a secret value which will be obfuscated during display/debugging output. If not set then all values will be displayed as is.
Example
use irx_config::parsers::env;
use irx_config::ConfigBuilder;
let config = ConfigBuilder::default()
.append_parser(
env::ParserBuilder::default()
.default_prefix("APP_")
.build()?,
)
.sealed_suffix("_sealed_")
.load()?;
sourcepub fn keys_delimiter<D>(self, delim: D) -> Selfwhere
D: Into<String>,
pub fn keys_delimiter<D>(self, delim: D) -> Selfwhere D: Into<String>,
Set default key level delimiter. Default is DEFAULT_KEYS_SEPARATOR
.
Example
use clap::app_from_crate;
use irx_config::parsers::cmd;
use irx_config::ConfigBuilder;
let app = app_from_crate!();
let config = ConfigBuilder::default()
.append_parser(cmd::ParserBuilder::new(app).build()?)
.keys_delimiter("/")
.load()?;
sourcepub fn merge_case(self, case: MergeCase) -> Self
pub fn merge_case(self, case: MergeCase) -> Self
Set merge case mode for a keys (see MergeCase
). Default is MergeCase::Auto
.