pub struct Config {
pub cache: Value,
/* private fields */
}
Expand description
A prioritized configuration repository. It maintains a set of configuration sources, fetches values to populate those, and provides them according to the source’s priority.
Fields§
§cache: Value
Root of the cached configuration.
Implementations§
Source§impl Config
impl Config
Sourcepub fn builder() -> ConfigBuilder<DefaultState>
pub fn builder() -> ConfigBuilder<DefaultState>
Creates new ConfigBuilder
instance
pub fn get<'de, T: Deserialize<'de>>(&self, key: &str) -> Result<T, ConfigError>
pub fn get_string(&self, key: &str) -> Result<String, ConfigError>
pub fn get_int(&self, key: &str) -> Result<i64, ConfigError>
pub fn get_float(&self, key: &str) -> Result<f64, ConfigError>
pub fn get_bool(&self, key: &str) -> Result<bool, ConfigError>
pub fn get_table(&self, key: &str) -> Result<Map<String, Value>, ConfigError>
pub fn get_array(&self, key: &str) -> Result<Vec<Value>, ConfigError>
Sourcepub fn try_deserialize<'de, T: Deserialize<'de>>(self) -> Result<T, ConfigError>
pub fn try_deserialize<'de, T: Deserialize<'de>>(self) -> Result<T, ConfigError>
Attempt to deserialize the entire configuration into the requested type.
Trait Implementations§
Source§impl<'de> Deserializer<'de> for Config
impl<'de> Deserializer<'de> for Config
Source§type Error = ConfigError
type Error = ConfigError
The error type that can be returned if some error occurs during
deserialization.
Source§fn deserialize_any<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_any<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Require the
Deserializer
to figure out how to drive the visitor based
on what data type is in the input. Read moreSource§fn deserialize_bool<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_bool<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a bool
value.Source§fn deserialize_i8<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_i8<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an i8
value.Source§fn deserialize_i16<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_i16<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an i16
value.Source§fn deserialize_i32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_i32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an i32
value.Source§fn deserialize_i64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_i64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an i64
value.Source§fn deserialize_u8<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_u8<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a u8
value.Source§fn deserialize_u16<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_u16<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a u16
value.Source§fn deserialize_u32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_u32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a u32
value.Source§fn deserialize_u64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_u64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a u64
value.Source§fn deserialize_f32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_f32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a f32
value.Source§fn deserialize_f64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_f64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a f64
value.Source§fn deserialize_str<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_str<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_string<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_string<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_option<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_option<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an optional value. Read moreSource§fn deserialize_char<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_char<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a char
value.Source§fn deserialize_seq<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_seq<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a sequence of values.Source§fn deserialize_bytes<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_bytes<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a byte array and does not
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_byte_buf<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_byte_buf<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a byte array and would
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_map<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_map<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a map of key-value pairs.Source§fn deserialize_unit<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_unit<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a unit value.Source§fn deserialize_identifier<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_identifier<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting the name of a struct
field or the discriminant of an enum variant.Source§fn deserialize_ignored_any<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_ignored_any<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type needs to deserialize a value whose type
doesn’t matter because it is ignored. Read moreSource§fn deserialize_enum<V: Visitor<'de>>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_enum<V: Visitor<'de>>( self, name: &'static str, variants: &'static [&'static str], visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting an enum value with a
particular name and possible variants.Source§fn deserialize_unit_struct<V: Visitor<'de>>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_unit_struct<V: Visitor<'de>>( self, name: &'static str, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a unit struct with a
particular name.Source§fn deserialize_newtype_struct<V: Visitor<'de>>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_newtype_struct<V: Visitor<'de>>( self, name: &'static str, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a newtype struct with a
particular name.Source§fn deserialize_tuple<V: Visitor<'de>>(
self,
n: usize,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_tuple<V: Visitor<'de>>( self, n: usize, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a sequence of values and
knows how many values there are without looking at the serialized data.Source§fn deserialize_tuple_struct<V: Visitor<'de>>(
self,
name: &'static str,
n: usize,
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_tuple_struct<V: Visitor<'de>>( self, name: &'static str, n: usize, visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a tuple struct with a
particular name and number of fields.Source§fn deserialize_struct<V: Visitor<'de>>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, ConfigError>
fn deserialize_struct<V: Visitor<'de>>( self, name: &'static str, fields: &'static [&'static str], visitor: V, ) -> Result<V::Value, ConfigError>
Hint that the
Deserialize
type is expecting a struct with a particular
name and fields.Source§fn deserialize_i128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
Source§fn deserialize_u128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
Source§fn is_human_readable(&self) -> bool
fn is_human_readable(&self) -> bool
Determine whether
Deserialize
implementations should expect to
deserialize their human-readable form. Read moreSource§impl Source for Config
impl Source for Config
fn clone_into_box(&self) -> Box<dyn Source + Send + Sync>
Source§fn collect(&self) -> Result<Map<String, Value>, ConfigError>
fn collect(&self) -> Result<Map<String, Value>, ConfigError>
Collect all configuration properties available from this source and return
a Map.
Source§fn collect_to(&self, cache: &mut Value) -> Result<(), ConfigError>
fn collect_to(&self, cache: &mut Value) -> Result<(), ConfigError>
Collects all configuration properties to a provided cache.
Auto Trait Implementations§
impl Freeze for Config
impl !RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl !UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more