pub struct GenericConfiguration { /* private fields */ }
Expand description
A generic configuration object.
This represents the merged configuration derived from ConfigurationLoader
in its raw form. Values can be
queried by key, and can be extracted either as typed values or in their raw form.
Keys must be in the form of a.b.c
, where periods (.
) as used to indicate a nested value.
Using an example JSON configuration:
{
"a": {
"b": {
"c": "value"
}
}
}
Querying for the value of a.b.c
would return "value"
, and querying for a.b
would return the nested object { "c": "value" }
.
Implementations§
Source§impl GenericConfiguration
impl GenericConfiguration
Sourcepub async fn ready(&self)
pub async fn ready(&self)
Waits for the configuration to be ready, if dynamic configuration is enabled.
If dynamic configuration is in use, this method will asynchronously wait until the first snapshot has been received and applied.
If dynamic configuration is not used, it returns immediately.
Sourcepub fn get_typed<'a, T>(&self, key: &str) -> Result<T, ConfigurationError>where
T: Deserialize<'a>,
pub fn get_typed<'a, T>(&self, key: &str) -> Result<T, ConfigurationError>where
T: Deserialize<'a>,
Gets a configuration value by key.
The key must be in the form of a.b.c
, where periods (.
) are used to indicate a nested lookup.
§Errors
If the key does not exist in the configuration, or if the value could not be deserialized into T
, an error
variant will be returned.
Sourcepub fn get_typed_or_default<'a, T>(&self, key: &str) -> Twhere
T: Default + Deserialize<'a>,
pub fn get_typed_or_default<'a, T>(&self, key: &str) -> Twhere
T: Default + Deserialize<'a>,
Gets a configuration value by key, or the default value if a key does not exist or could not be deserialized.
The Default
implementation of T
will be used both if the key could not be found, as well as for any error
during deserialization. This effectively swallows any errors and should generally be used sparingly.
The key must be in the form of a.b.c
, where periods (.
) are used to indicate a nested lookup.
Sourcepub fn try_get_typed<'a, T>(
&self,
key: &str,
) -> Result<Option<T>, ConfigurationError>where
T: Deserialize<'a>,
pub fn try_get_typed<'a, T>(
&self,
key: &str,
) -> Result<Option<T>, ConfigurationError>where
T: Deserialize<'a>,
Gets a configuration value by key, if it exists.
If the key exists in the configuration, and can be deserialized, Ok(Some(value))
is returned. Otherwise,
Ok(None)
will be returned.
The key must be in the form of a.b.c
, where periods (.
) are used to indicate a nested lookup.
§Errors
If the value could not be deserialized into T
, an error will be returned.
Sourcepub fn as_typed<'a, T>(&self) -> Result<T, ConfigurationError>where
T: Deserialize<'a>,
pub fn as_typed<'a, T>(&self) -> Result<T, ConfigurationError>where
T: Deserialize<'a>,
Attempts to deserialize the entire configuration as T
.
§Errors
If the value could not be deserialized into T
, an error will be returned.
Sourcepub fn subscribe_for_updates(&self) -> Option<Receiver<ConfigChangeEvent>>
pub fn subscribe_for_updates(&self) -> Option<Receiver<ConfigChangeEvent>>
Subscribes for updates to the configuration.
Sourcepub fn watch_for_updates(&self, key: &str) -> FieldUpdateWatcher
pub fn watch_for_updates(&self, key: &str) -> FieldUpdateWatcher
Creates a watcher that yields only when the given key changes.
If dynamic configuration is disabled, the returned watcher’s changed()
will wait indefinitely.
Trait Implementations§
Source§impl Clone for GenericConfiguration
impl Clone for GenericConfiguration
Source§fn clone(&self) -> GenericConfiguration
fn clone(&self) -> GenericConfiguration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for GenericConfiguration
impl !RefUnwindSafe for GenericConfiguration
impl Send for GenericConfiguration
impl Sync for GenericConfiguration
impl Unpin for GenericConfiguration
impl !UnwindSafe for GenericConfiguration
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);