Struct rocket_db_pools::figment::providers::Serialized
[−]pub struct Serialized<T> {
pub value: T,
pub key: Option<String>,
pub profile: Profile,
/* private fields */
}
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
(viastd::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 aDict
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 anyValue
and is emitted as the value of the configuredkey
. Specifically, nested dictionaries are created for every path component delimited by.
in the key string (3 ina.b.c
), each dictionary mapping to its parent, and the serializedT
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
impl<T> Serialized<T>
impl<T> Serialized<T>
pub fn from<P>(value: T, profile: P) -> Serialized<T> where
P: Into<Profile>,
pub fn from<P>(value: T, profile: P) -> Serialized<T> where
P: Into<Profile>,
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(())
});
pub fn defaults(value: T) -> Serialized<T>
pub fn defaults(value: T) -> Serialized<T>
Emits value
, which must serialize to a Dict
, to the Default
profile.
Equivalent to Serialized::from(value, Profile::Default)
.
See Serialized::from()
.
pub fn globals(value: T) -> Serialized<T>
pub fn globals(value: T) -> Serialized<T>
Emits value
, which must serialize to a Dict
, to the Global
profile.
Equivalent to Serialized::from(value, Profile::Global)
.
See Serialized::from()
.
pub fn default(key: &str, value: T) -> Serialized<T>
pub fn default(key: &str, value: T) -> Serialized<T>
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()
.
pub fn global(key: &str, value: T) -> Serialized<T>
pub fn global(key: &str, value: T) -> Serialized<T>
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()
.
pub fn profile<P>(self, profile: P) -> Serialized<T> where
P: Into<Profile>,
pub fn profile<P>(self, profile: P) -> Serialized<T> where
P: Into<Profile>,
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(())
});
pub fn key(self, key: &str) -> Serialized<T>
pub fn key(self, key: &str) -> Serialized<T>
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
impl<T> Clone for Serialized<T> where
T: Clone,
impl<T> Clone for Serialized<T> where
T: Clone,
fn clone(&self) -> Serialized<T>
fn clone(&self) -> Serialized<T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<T> Debug for Serialized<T> where
T: Debug,
impl<T> Debug for Serialized<T> where
T: Debug,
Auto Trait Implementations
impl<T> RefUnwindSafe for Serialized<T> where
T: RefUnwindSafe,
impl<T> Send for Serialized<T> where
T: Send,
impl<T> Sync for Serialized<T> where
T: Sync,
impl<T> Unpin for Serialized<T> where
T: Unpin,
impl<T> UnwindSafe for Serialized<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more