[−][src]Enum figment::value::Value
An enum representing all possible figment value variants.
Note that Value
implements From<T>
for all reasonable T
:
use figment::value::Value; let v = Value::from("hello"); assert_eq!(v.as_str(), Some("hello"));
Variants
A string.
A character.
A boolean.
A numeric value.
A value with no value.
A dictionary: a map from String
to Value
.
A sequence/array/vector.
Implementations
impl Value
[src]
pub fn serialize<T: Serialize>(value: T) -> Result<Self, Error>
[src]
Serialize a Value
from any T: Serialize
.
use figment::value::{Value, Empty}; let value = Value::serialize(10i8).unwrap(); assert_eq!(value.to_i128(), Some(10)); let value = Value::serialize(()).unwrap(); assert_eq!(value, Empty::Unit.into()); let value = Value::serialize(vec![4, 5, 6]).unwrap(); assert_eq!(value, vec![4, 5, 6].into());
pub fn deserialize<'de, T: Deserialize<'de>>(&self) -> Result<T, Error>
[src]
Deserialize self
into any deserializable T
.
use figment::value::Value; let value = Value::from("hello"); let string: String = value.deserialize().unwrap(); assert_eq!(string, "hello");
pub fn find(self, path: &str) -> Option<Value>
[src]
Looks up and returns the value at path path
, where path
is of the
form a.b.c
where a
, b
, and c
are keys to dictionaries. If the
key is empty, simply returns self
. If the key is not empty and self
or any of the values for non-leaf keys in the path are not dictionaries,
returns None
.
This method consumes self
. See Value::find_ref()
for a
non-consuming variant.
Example
use figment::{value::Value, util::map}; let value = Value::from(map! { "apple" => map! { "bat" => map! { "pie" => 4usize, }, "cake" => map! { "pumpkin" => 10usize, } } }); assert!(value.clone().find("apple").is_some()); assert!(value.clone().find("apple.bat").is_some()); assert!(value.clone().find("apple.cake").is_some()); assert_eq!(value.clone().find("apple.bat.pie").unwrap().to_u128(), Some(4)); assert_eq!(value.clone().find("apple.cake.pumpkin").unwrap().to_u128(), Some(10)); assert!(value.clone().find("apple.pie").is_none()); assert!(value.clone().find("pineapple").is_none());
pub fn find_ref<'a>(&'a self, path: &str) -> Option<&'a Value>
[src]
Exactly like Value::find()
but does not consume self
,
returning a reference to the found value, if any, instead.
Example
use figment::{value::Value, util::map}; let value = Value::from(map! { "apple" => map! { "bat" => map! { "pie" => 4usize, }, "cake" => map! { "pumpkin" => 10usize, } } }); assert!(value.find_ref("apple").is_some()); assert!(value.find_ref("apple.bat").is_some()); assert!(value.find_ref("apple.cake").is_some()); assert_eq!(value.find_ref("apple.bat.pie").unwrap().to_u128(), Some(4)); assert_eq!(value.find_ref("apple.cake.pumpkin").unwrap().to_u128(), Some(10)); assert!(value.find_ref("apple.pie").is_none()); assert!(value.find_ref("pineapple").is_none());
pub fn tag(&self) -> Tag
[src]
Returns the Tag
applied to this value.
use figment::{Figment, Profile, value::Value, util::map}; let map: Value = Figment::from(("key", "value")).extract().unwrap(); let value = map.find_ref("key").expect("value"); assert_eq!(value.as_str(), Some("value")); assert!(!value.tag().is_default()); assert_eq!(value.tag().profile(), Some(Profile::Global)); let map: Value = Figment::from(("key", map!["key2" => 123])).extract().unwrap(); let value = map.find_ref("key.key2").expect("value"); assert_eq!(value.to_i128(), Some(123)); assert!(!value.tag().is_default()); assert_eq!(value.tag().profile(), Some(Profile::Global));
pub fn as_str(self: &Value) -> Option<&str>
[src]
Converts self
into a &str
if self
is a Value::String
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.as_str();
pub fn into_string(self: Value) -> Option<String>
[src]
Converts self
into a String
if self
is a Value::String
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.into_string();
pub fn to_char(self: &Value) -> Option<char>
[src]
Converts self
into a char
if self
is a Value::Char
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.to_char();
pub fn to_bool(self: &Value) -> Option<bool>
[src]
Converts self
into a bool
if self
is a Value::Bool
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.to_bool();
pub fn to_num(self: &Value) -> Option<Num>
[src]
Converts self
into a Num
if self
is a Value::Num
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.to_num();
pub fn to_empty(self: &Value) -> Option<Empty>
[src]
Converts self
into a Empty
if self
is a Value::Empty
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.to_empty();
pub fn as_dict(self: &Value) -> Option<&Dict>
[src]
Converts self
into a &Dict
if self
is a Value::Dict
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.as_dict();
pub fn into_dict(self: Value) -> Option<Dict>
[src]
Converts self
into a Dict
if self
is a Value::Dict
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.into_dict();
pub fn as_array(self: &Value) -> Option<&[Value]>
[src]
Converts self
into a &[Value]
if self
is a Value::Array
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.as_array();
pub fn into_array(self: Value) -> Option<Vec<Value>>
[src]
Converts self
into a Vec<Value>
if self
is a Value::Array
.
Example
use figment::value::Value; let value: Value = 123.into(); let converted = value.into_array();
pub fn to_u128(&self) -> Option<u128>
[src]
Converts self
into a u128
if self
is an unsigned Value::Num
variant.
Example
use figment::value::Value; let value: Value = 123u8.into(); let converted = value.to_u128(); assert_eq!(converted, Some(123));
pub fn to_i128(&self) -> Option<i128>
[src]
Converts self
into a u128
if self
is an unsigned Value::Num
variant.
Example
use figment::value::Value; let value: Value = 123i8.into(); let converted = value.to_i128(); assert_eq!(converted, Some(123));
pub fn to_actual(&self) -> Actual
[src]
Converts self
into the corresponding Actual
.
See also Num::to_actual()
and Empty::to_actual()
, which are
called internally by this method.
Example
use figment::{value::Value, error::Actual}; assert_eq!(Value::from('a').to_actual(), Actual::Char('a')); assert_eq!(Value::from(&[1, 2, 3]).to_actual(), Actual::Seq);
Trait Implementations
impl Clone for Value
[src]
impl Debug for Value
[src]
impl<'de> Deserialize<'de> for Value
[src]
fn deserialize<D: Deserializer<'de>>(de: D) -> Result<Value, D::Error>
[src]
impl<'de, '_> Deserializer<'de> for &'_ Value
[src]
type Error = Error
The error type that can be returned if some error occurs during deserialization. Read more
fn deserialize_any<V>(self, v: V) -> Result<V::Value> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_enum<V: Visitor<'de>>(
self,
_: &'static str,
_: &'static [&'static str],
v: V
) -> Result<V::Value>
[src]
self,
_: &'static str,
_: &'static [&'static str],
v: V
) -> Result<V::Value>
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
fn deserialize_tuple<V>(
self,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
self,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
[src]
V: Visitor<'de>,
fn deserialize_i128<V>(
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Self::Error> where
V: Visitor<'de>,
[src]
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>,
[src]
self,
visitor: V
) -> Result<<V as Visitor<'de>>::Value, Self::Error> where
V: Visitor<'de>,
fn is_human_readable(&self) -> bool
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 1]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 2]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 3]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 4]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 5]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 6]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 7]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T; 8]> for Value
[src]
impl<'a, T: Into<Value> + Clone> From<&'a [T]> for Value
[src]
impl<'a> From<&'a str> for Value
[src]
impl<K: AsRef<str>, V: Into<Value>> From<BTreeMap<K, V>> for Value
[src]
impl From<Empty> for Value
[src]
impl From<Num> for Value
[src]
impl From<String> for Value
[src]
impl From<Tag> for Value
[src]
impl<'a, T: Into<Value>> From<Vec<T>> for Value
[src]
impl From<bool> for Value
[src]
impl From<char> for Value
[src]
impl From<f32> for Value
[src]
impl From<f64> for Value
[src]
impl From<i128> for Value
[src]
impl From<i16> for Value
[src]
impl From<i32> for Value
[src]
impl From<i64> for Value
[src]
impl From<i8> for Value
[src]
impl From<isize> for Value
[src]
impl From<u128> for Value
[src]
impl From<u16> for Value
[src]
impl From<u32> for Value
[src]
impl From<u64> for Value
[src]
impl From<u8> for Value
[src]
impl From<usize> for Value
[src]
impl FromStr for Value
[src]
type Err = Infallible
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Self, Infallible>
[src]
impl PartialEq<Value> for Value
[src]
impl Serialize for Value
[src]
impl StructuralPartialEq for Value
[src]
Auto Trait Implementations
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,