Skip to content

Commit 35ba3bd

Browse files
authored
Merge pull request #614 from epage/deprecated
fix!: Remove deprecated APIs
2 parents c9f32b0 + 5b3087f commit 35ba3bd

File tree

8 files changed

+15
-154
lines changed

8 files changed

+15
-154
lines changed

examples/global/main.rs

Lines changed: 0 additions & 25 deletions
This file was deleted.

examples/watch/main.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#![allow(deprecated)]
21
use std::collections::HashMap;
32
use std::path::Path;
43
use std::sync::mpsc::channel;
@@ -12,15 +11,23 @@ use notify::{Event, RecommendedWatcher, RecursiveMode, Watcher};
1211
fn settings() -> &'static RwLock<Config> {
1312
static CONFIG: OnceLock<RwLock<Config>> = OnceLock::new();
1413
CONFIG.get_or_init(|| {
15-
let mut settings = Config::default();
16-
settings
17-
.merge(File::with_name("examples/watch/Settings.toml"))
18-
.unwrap();
14+
let settings = load();
1915

2016
RwLock::new(settings)
2117
})
2218
}
2319

20+
fn refresh() {
21+
*settings().write().unwrap() = load();
22+
}
23+
24+
fn load() -> Config {
25+
Config::builder()
26+
.add_source(File::with_name("examples/watch/Settings.toml"))
27+
.build()
28+
.unwrap()
29+
}
30+
2431
fn show() {
2532
println!(
2633
" * Settings :: \n\x1b[31m{:?}\x1b[0m",
@@ -63,7 +70,7 @@ fn watch() -> ! {
6370
..
6471
})) => {
6572
println!(" * Settings.toml written; refreshing configuration ...");
66-
settings().write().unwrap().refresh().unwrap();
73+
refresh();
6774
show();
6875
}
6976

src/builder.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -109,21 +109,6 @@ pub struct DefaultState {
109109
sources: Vec<Box<dyn Source + Send + Sync>>,
110110
}
111111

112-
// Dummy useless struct
113-
//
114-
// This struct exists only to avoid the semver break
115-
// which would be implied by removing it.
116-
//
117-
// This struct cannot be used for anything useful.
118-
// (Nor can it be extended without a semver break, either.)
119-
//
120-
// In a future release, we should have
121-
// type AsyncConfigBuilder = ConfigBuilder<AsyncState>;
122-
#[deprecated = "AsyncConfigBuilder is useless. Use ConfigBuilder<AsyncState>"]
123-
#[doc(hidden)]
124-
#[derive(Debug, Clone, Default)]
125-
pub struct AsyncConfigBuilder {}
126-
127112
/// Represents data specific to builder in asynchronous state, with support for async.
128113
#[derive(Debug, Default, Clone)]
129114
pub struct AsyncState {

src/config.rs

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -48,40 +48,12 @@ impl Config {
4848
ConfigBuilder::<DefaultState>::default()
4949
}
5050

51-
/// Merge in a configuration property source.
52-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
53-
pub fn merge<T>(&mut self, source: T) -> Result<&mut Self>
54-
where
55-
T: 'static,
56-
T: Source + Send + Sync,
57-
{
58-
self.sources.push(Box::new(source));
59-
60-
#[allow(deprecated)]
61-
self.refresh()
62-
}
63-
64-
/// Merge in a configuration property source.
65-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
66-
pub fn with_merged<T>(mut self, source: T) -> Result<Self>
67-
where
68-
T: 'static,
69-
T: Source + Send + Sync,
70-
{
71-
self.sources.push(Box::new(source));
72-
73-
#[allow(deprecated)]
74-
self.refresh()?;
75-
Ok(self)
76-
}
77-
7851
/// Refresh the configuration cache with fresh
7952
/// data from added sources.
8053
///
8154
/// Configuration is automatically refreshed after a mutation
8255
/// operation (`set`, `merge`, `set_default`, etc.).
83-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
84-
pub fn refresh(&mut self) -> Result<&mut Self> {
56+
fn refresh(&mut self) -> Result<&mut Self> {
8557
self.cache = {
8658
let mut cache: Value = Map::<String, Value>::new().into();
8759

@@ -104,18 +76,6 @@ impl Config {
10476
Ok(self)
10577
}
10678

107-
/// Set a default `value` at `key`
108-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
109-
pub fn set_default<T>(&mut self, key: &str, value: T) -> Result<&mut Self>
110-
where
111-
T: Into<Value>,
112-
{
113-
self.defaults.insert(key.parse()?, value.into());
114-
115-
#[allow(deprecated)]
116-
self.refresh()
117-
}
118-
11979
/// Set an overwrite
12080
///
12181
/// This function sets an overwrite value.
@@ -124,30 +84,15 @@ impl Config {
12484
/// # Warning
12585
///
12686
/// Errors if config is frozen
127-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
128-
pub fn set<T>(&mut self, key: &str, value: T) -> Result<&mut Self>
87+
pub(crate) fn set<T>(&mut self, key: &str, value: T) -> Result<&mut Self>
12988
where
13089
T: Into<Value>,
13190
{
13291
self.overrides.insert(key.parse()?, value.into());
13392

134-
#[allow(deprecated)]
13593
self.refresh()
13694
}
13795

138-
#[deprecated(since = "0.12.0", note = "please use 'ConfigBuilder' instead")]
139-
pub fn set_once(&mut self, key: &str, value: Value) -> Result<()> {
140-
let expr: path::Expression = key.parse()?;
141-
142-
// Traverse the cache using the path to (possibly) retrieve a value
143-
if let Some(ref mut val) = expr.get_mut(&mut self.cache) {
144-
**val = value;
145-
} else {
146-
expr.set(&mut self.cache, value);
147-
}
148-
Ok(())
149-
}
150-
15196
fn get_value(&self, key: &str) -> Result<Value> {
15297
// Parse the key into a path expression
15398
let expr: path::Expression = key.parse()?;
@@ -206,11 +151,6 @@ impl Config {
206151
from.serialize(&mut serializer)?;
207152
Ok(serializer.output)
208153
}
209-
210-
#[deprecated(since = "0.7.0", note = "please use 'try_deserialize' instead")]
211-
pub fn deserialize<'de, T: Deserialize<'de>>(self) -> Result<T> {
212-
self.try_deserialize()
213-
}
214154
}
215155

216156
impl Source for Config {

src/env.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,6 @@ pub struct Environment {
9191
}
9292

9393
impl Environment {
94-
#[deprecated(since = "0.12.0", note = "please use 'Environment::default' instead")]
95-
pub fn new() -> Self {
96-
Self::default()
97-
}
98-
9994
/// Optional prefix that will limit access to the environment to only keys that
10095
/// begin with the defined prefix.
10196
///

src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ mod value;
3939
#[cfg(feature = "convert-case")]
4040
pub use convert_case::Case;
4141

42-
#[allow(deprecated)]
43-
pub use crate::builder::AsyncConfigBuilder;
4442
pub use crate::builder::ConfigBuilder;
4543
pub use crate::config::Config;
4644
pub use crate::env::Environment;

src/path/mod.rs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -78,44 +78,6 @@ impl Expression {
7878
}
7979
}
8080

81-
pub(crate) fn get_mut<'a>(&self, root: &'a mut Value) -> Option<&'a mut Value> {
82-
match *self {
83-
Self::Identifier(ref id) => match root.kind {
84-
ValueKind::Table(ref mut map) => map.get_mut(id),
85-
86-
_ => None,
87-
},
88-
89-
Self::Child(ref expr, ref key) => match expr.get_mut(root) {
90-
Some(value) => match value.kind {
91-
ValueKind::Table(ref mut map) => map.get_mut(key),
92-
93-
_ => None,
94-
},
95-
96-
_ => None,
97-
},
98-
99-
Self::Subscript(ref expr, index) => match expr.get_mut(root) {
100-
Some(value) => match value.kind {
101-
ValueKind::Array(ref mut array) => {
102-
let index = sindex_to_uindex(index, array.len());
103-
104-
if index >= array.len() {
105-
None
106-
} else {
107-
Some(&mut array[index])
108-
}
109-
}
110-
111-
_ => None,
112-
},
113-
114-
_ => None,
115-
},
116-
}
117-
}
118-
11981
pub(crate) fn get_mut_forcibly<'a>(&self, root: &'a mut Value) -> Option<&'a mut Value> {
12082
match *self {
12183
Self::Identifier(ref id) => match root.kind {

src/ser.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ impl ConfigSerializer {
4545
// That would be marginally more performant, but more fiddly.
4646
let key = self.make_full_key()?;
4747

48-
#[allow(deprecated)]
4948
self.output.set(&key, value.into())?;
5049
Ok(())
5150
}

0 commit comments

Comments
 (0)