Skip to main content

config/prelude/
chained.rs

1use crate::{chained, Builder, Configuration};
2use std::sync::Arc;
3
4/// Defines chained configuration extension methods for a [configuration builder](Builder).
5pub trait ChainedExt: Sized {
6    /// Adds an existing configuration.
7    ///
8    /// # Arguments
9    ///
10    /// * `configuration` - The existing [configuration](Configuration) to add
11    fn add_configuration<T: Into<Arc<Configuration>>>(self, configuration: T) -> Self;
12}
13
14impl ChainedExt for Builder {
15    fn add_configuration<T: Into<Arc<Configuration>>>(mut self, configuration: T) -> Self {
16        self.add(chained::Provider::new(configuration.into()));
17        self
18    }
19}