Struct figment::providers::Serialized[][src]

pub struct Serialized<T> {
    pub value: T,
    pub key: Option<String>,
    pub profile: Profile,
    // some fields omitted
}
Expand description

A Provider that sources values directly from a serialize type.

Provider Details

  • Profile

    This provider does not set a profile.

  • Metadata

    This provider is named T (via std::any::type_name). The source location is set to the call site of the constructor.

  • Data (Unkeyed)

    When data is not keyed, T is expected to serialize to a Dict and is emitted directly as the value for the configured profile.

  • Data (Keyed)

    When keyed (Serialized::default(), Serialized::global(), Serialized::key()), T can serialize to any Value and is emitted as the value of the configured key. Specifically, nested dictionaries are created for every path component delimited by . in the key string (3 in a.b.c), each dictionary mapping to its parent, and the serialized T mapping to the leaf.

Fields

value: T

The value to be serialized and used as the provided data.

key: Option<String>

The key path (a.b.c) to emit the value to or the root if None.

profile: Profile

The profile to emit the value to. Defaults to Profile::Default.

Implementations

Constructs an (unkeyed) provider that emits value, which must serialize to a dict, to the profile.

use serde::Deserialize;
use figment::{Figment, Jail, providers::Serialized, util::map};

#[derive(Debug, PartialEq, Deserialize)]
struct Config {
    numbers: Vec<usize>,
}

Jail::expect_with(|jail| {
    let map = map!["numbers" => &[1, 2, 3]];

    // This is also `Serialized::defaults(&map)`;
    let figment = Figment::from(Serialized::from(&map, "default"));
    let config: Config = figment.extract()?;
    assert_eq!(config, Config { numbers: vec![1, 2, 3] });

    // This is also `Serialized::defaults(&map).profile("debug")`;
    let figment = Figment::from(Serialized::from(&map, "debug"));
    let config: Config = figment.select("debug").extract()?;
    assert_eq!(config, Config { numbers: vec![1, 2, 3] });

    Ok(())
});

Emits value, which must serialize to a Dict, to the Default profile.

Equivalent to Serialized::from(value, Profile::Default).

See Serialized::from().

Emits value, which must serialize to a Dict, to the Global profile.

Equivalent to Serialized::from(value, Profile::Global).

See Serialized::from().

Emits a nested dictionary to the Default profile keyed by key with the final key mapping to value.

Equivalent for Serialized::from(value, Profile::Default).key(key).

See Serialized::from() and Serialized::key().

Emits a nested dictionary to the Global profile keyed by key with the final key mapping to value.

Equivalent to Serialized::from(value, Profile::Global).key(key).

See Serialized::from() and Serialized::key().

Sets the profile to emit the serialized value to.

use figment::{Figment, Jail, providers::Serialized};

Jail::expect_with(|jail| {
    // This is also `Serialized::defaults(&map)`;
    let figment = Figment::new()
        .join(Serialized::default("key", "hey").profile("debug"))
        .join(Serialized::default("key", "hi"));

    let value: String = figment.extract_inner("key")?;
    assert_eq!(value, "hi");

    let value: String = figment.select("debug").extract_inner("key")?;
    assert_eq!(value, "hey");

    Ok(())
});

Sets the key to emit the serialized value to.

use figment::{Figment, Jail, providers::Serialized};

Jail::expect_with(|jail| {
    // This is also `Serialized::defaults(&map)`;
    let figment = Figment::new()
        .join(Serialized::default("key", "hey").key("other"))
        .join(Serialized::default("key", "hi"));

    let value: String = figment.extract_inner("key")?;
    assert_eq!(value, "hi");

    let value: String = figment.extract_inner("other")?;
    assert_eq!(value, "hey");

    Ok(())
});

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the Metadata for this provider, identifying itself and its configuration sources. Read more

Returns the configuration data.

Optionally returns a profile to set on the Figment this provider is merged into. The profile is only set if self is merged. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.