Struct figment::value::magic::Tagged [−][src]
pub struct Tagged<T> { /* fields omitted */ }
Expand description
A wrapper around any value of type T
and its Tag
.
use figment::{Figment, value::magic::Tagged, Jail}; use figment::providers::{Format, Toml}; #[derive(Debug, PartialEq, serde::Deserialize)] struct Config { number: Tagged<usize>, } Jail::expect_with(|jail| { jail.create_file("Config.toml", r#"number = 10"#)?; let figment = Figment::from(Toml::file("Config.toml")); let c: Config = figment.extract()?; assert_eq!(*c.number, 10); let tag = c.number.tag(); let metadata = figment.get_metadata(tag).expect("number has tag"); assert!(!tag.is_default()); assert_eq!(metadata.name, "TOML file"); Ok(()) });
Implementations
Returns the tag of the inner value if it is known. As long self
is a
leaf and was extracted from a Figment
, the returned
value is expected to be Some
.
Example
use figment::{Figment, Profile, value::magic::Tagged}; let figment = Figment::from(("key", "value")); let tagged = figment.extract_inner::<Tagged<String>>("key").unwrap(); assert!(!tagged.tag().is_default()); assert_eq!(tagged.tag().profile(), Some(Profile::Global));
Consumes self
and returns the inner value.
Example
use figment::{Figment, value::magic::Tagged}; let tagged = Figment::from(("key", "value")) .extract_inner::<Tagged<String>>("key") .unwrap(); let value = tagged.into_inner(); assert_eq!(value, "value");
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Tagged<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Tagged<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V