|
| 1 | +use std::iter::IntoIterator; |
1 | 2 | use std::str::FromStr;
|
2 |
| -use std::{collections::HashMap, iter::IntoIterator}; |
3 | 3 |
|
4 | 4 | use crate::error::Result;
|
| 5 | +use crate::map::Map; |
5 | 6 | use crate::source::AsyncSource;
|
6 | 7 | use crate::{config::Config, path::Expression, source::Source, value::Value};
|
7 | 8 |
|
@@ -87,8 +88,8 @@ use crate::{config::Config, path::Expression, source::Source, value::Value};
|
87 | 88 | /// ```
|
88 | 89 | #[derive(Debug, Clone, Default)]
|
89 | 90 | pub struct ConfigBuilder<St: BuilderState> {
|
90 |
| - defaults: HashMap<Expression, Value>, |
91 |
| - overrides: HashMap<Expression, Value>, |
| 91 | + defaults: Map<Expression, Value>, |
| 92 | + overrides: Map<Expression, Value>, |
92 | 93 | state: St,
|
93 | 94 | }
|
94 | 95 |
|
@@ -120,8 +121,8 @@ pub struct DefaultState {
|
120 | 121 | /// Refer to [`ConfigBuilder`] for similar API sample usage or to the examples folder of the crate, where such a source is implemented.
|
121 | 122 | #[derive(Debug, Clone, Default)]
|
122 | 123 | pub struct AsyncConfigBuilder {
|
123 |
| - defaults: HashMap<Expression, Value>, |
124 |
| - overrides: HashMap<Expression, Value>, |
| 124 | + defaults: Map<Expression, Value>, |
| 125 | + overrides: Map<Expression, Value>, |
125 | 126 | sources: Vec<SourceType>,
|
126 | 127 | }
|
127 | 128 |
|
@@ -244,11 +245,11 @@ impl ConfigBuilder<DefaultState> {
|
244 | 245 | }
|
245 | 246 |
|
246 | 247 | fn build_internal(
|
247 |
| - defaults: HashMap<Expression, Value>, |
248 |
| - overrides: HashMap<Expression, Value>, |
| 248 | + defaults: Map<Expression, Value>, |
| 249 | + overrides: Map<Expression, Value>, |
249 | 250 | sources: &[Box<dyn Source + Send + Sync>],
|
250 | 251 | ) -> Result<Config> {
|
251 |
| - let mut cache: Value = HashMap::<String, Value>::new().into(); |
| 252 | + let mut cache: Value = Map::<String, Value>::new().into(); |
252 | 253 |
|
253 | 254 | // Add defaults
|
254 | 255 | for (key, val) in defaults.into_iter() {
|
@@ -322,11 +323,11 @@ impl ConfigBuilder<AsyncState> {
|
322 | 323 | }
|
323 | 324 |
|
324 | 325 | async fn build_internal(
|
325 |
| - defaults: HashMap<Expression, Value>, |
326 |
| - overrides: HashMap<Expression, Value>, |
| 326 | + defaults: Map<Expression, Value>, |
| 327 | + overrides: Map<Expression, Value>, |
327 | 328 | sources: &[SourceType],
|
328 | 329 | ) -> Result<Config> {
|
329 |
| - let mut cache: Value = HashMap::<String, Value>::new().into(); |
| 330 | + let mut cache: Value = Map::<String, Value>::new().into(); |
330 | 331 |
|
331 | 332 | // Add defaults
|
332 | 333 | for (key, val) in defaults.into_iter() {
|
|
0 commit comments