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: ValueRoot of the cached configuration.
Implementations§
Source§impl Config
impl Config
pub fn new() -> Self
Sourcepub fn merge<T>(&mut self, source: T) -> Result<&mut Config, ConfigError>
pub fn merge<T>(&mut self, source: T) -> Result<&mut Config, ConfigError>
Merge in a configuration property source.
Sourcepub fn refresh(&mut self) -> Result<&mut Config, ConfigError>
pub fn refresh(&mut self) -> Result<&mut Config, ConfigError>
Refresh the configuration cache with fresh data from added sources.
Configuration is automatically refreshed after a mutation
operation (set, merge, set_default, etc.).
pub fn set_default<T>( &mut self, key: &str, value: T, ) -> Result<&mut Config, ConfigError>
pub fn set<T>( &mut self, key: &str, value: T, ) -> Result<&mut Config, ConfigError>
pub fn get<'de, T: Deserialize<'de>>(&self, key: &str) -> Result<T, ConfigError>
pub fn get_str(&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<HashMap<String, Value>, ConfigError>
pub fn get_array(&self, key: &str) -> Result<Vec<Value>, ConfigError>
Sourcepub fn try_into<'de, T: Deserialize<'de>>(self) -> Result<T, ConfigError>
pub fn try_into<'de, T: Deserialize<'de>>(self) -> Result<T, ConfigError>
Attempt to deserialize the entire configuration into the requested type.
Sourcepub fn try_from<T: Serialize>(from: &T) -> Result<Self, ConfigError>
pub fn try_from<T: Serialize>(from: &T) -> Result<Self, ConfigError>
Attempt to serialize the entire configuration from the given type.
pub fn deserialize<'de, T: Deserialize<'de>>(self) -> Result<T, ConfigError>
👎Deprecated since 0.7.0: please use ‘try_into’ instead
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>(self, visitor: V) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
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>(self, visitor: V) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting an optional value. Read moreSource§fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, ConfigError>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting an enum value with a
particular name and possible variants.Source§fn deserialize_char<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_char<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a char value.Source§fn deserialize_seq<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_seq<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a sequence of values.Source§fn deserialize_bytes<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_bytes<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
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>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_byte_buf<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
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>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_map<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a map of key-value pairs.Source§fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a struct with a particular
name and fields.Source§fn deserialize_unit<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_unit<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a unit value.Source§fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a newtype struct with a
particular name.Source§fn deserialize_identifier<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_identifier<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
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>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_ignored_any<V>(
self,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type needs to deserialize a value whose type
doesn’t matter because it is ignored. Read moreSource§fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a unit struct with a
particular name.Source§fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
Hint that the
Deserialize type is expecting a tuple struct with a
particular name and number of fields.Source§fn deserialize_tuple<V>(
self,
len: usize,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
fn deserialize_tuple<V>(
self,
len: usize,
visitor: V,
) -> Result<V::Value, <Self as Deserializer<'de>>::Error>where
V: Visitor<'de>,
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_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 moreAuto 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