diff options
author | Radosław Kot <rdkt13@gmail.com> | 2021-04-24 18:52:51 +0200 |
---|---|---|
committer | Radosław Kot <rdkt13@gmail.com> | 2021-05-08 17:43:16 +0200 |
commit | 82d23c76a8637360e03c0b43d9a1c0c26d820d9f (patch) | |
tree | a1b823412e7c3e334727c02e8991209709a861c4 /src/config.rs | |
parent | 79883ff7f8ab246c8993f6276d97e5670271cb8c (diff) |
Add ConfigBuilder
Diffstat (limited to 'src/config.rs')
-rw-r--r-- | src/config.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs index 2b6c5b6..5b4d40e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use std::fmt::Debug; +use builder::ConfigBuilder; use serde::de::Deserialize; use serde::ser::Serialize; @@ -35,7 +36,20 @@ impl Default for Config { } impl Config { + pub(crate) fn new(value: Value) -> Self { + Config { + cache: value, + ..Default::default() + } + } + + /// Creates new [`ConfigBuilder`] instance + pub fn builder() -> ConfigBuilder { + ConfigBuilder::default() + } + /// Merge in a configuration property source. + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn merge<T>(&mut self, source: T) -> Result<&mut Config> where T: 'static, @@ -46,6 +60,7 @@ impl Config { } /// Merge in a configuration property source. + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn with_merged<T>(mut self, source: T) -> Result<Self> where T: 'static, @@ -61,6 +76,7 @@ impl Config { /// /// Configuration is automatically refreshed after a mutation /// operation (`set`, `merge`, `set_default`, etc.). + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn refresh(&mut self) -> Result<&mut Config> { self.cache = { let mut cache: Value = HashMap::<String, Value>::new().into(); @@ -85,6 +101,7 @@ impl Config { } /// Set a default `value` at `key` + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn set_default<T>(&mut self, key: &str, value: T) -> Result<&mut Config> where T: Into<Value>, @@ -101,6 +118,7 @@ impl Config { /// # Warning /// /// Errors if config is frozen + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn set<T>(&mut self, key: &str, value: T) -> Result<&mut Config> where T: Into<Value>, @@ -109,6 +127,7 @@ impl Config { self.refresh() } + #[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")] pub fn set_once(&mut self, key: &str, value: Value) -> Result<()> { let expr: path::Expression = key.parse()?; |