Enum Value

pub enum Value

Representation of a TOML value.

Variants

String(String)

Represents a TOML string

Integer(i64)

Represents a TOML integer

Float(f64)

Represents a TOML float

Boolean(bool)

Represents a TOML boolean

Datetime(Datetime)

Represents a TOML datetime

Array(Array)

Represents a TOML array

Table(Table)

Represents a TOML table

Implementations

impl Value

fn try_from<T>(value: T) -> Result<Self, Error>
where
    T: Serialize,

Convert a T into toml::Value which is an enum that can represent any valid TOML data.

This conversion can fail if T's implementation of Serialize decides to fail, or if T contains a map with non-string keys.

fn try_into<'de, T>(self) -> Result<T, Error>
where
    T: Deserialize<'de>,

Interpret a toml::Value as an instance of type T.

This conversion can fail if the structure of the Value does not match the structure expected by T, for example if T is a struct type but the Value contains something other than a TOML table. It can also fail if the structure is correct but T's implementation of Deserialize decides that something is wrong with the data, for example required struct fields are missing from the TOML map or some number is too big to fit in the expected primitive type.

fn get<I: Index>(&self, index: I) -> Option<&Self>

Index into a TOML array or map. A string index can be used to access a value in a map, and a usize index can be used to access an element of an array.

Returns None if the type of self does not match the type of the index, for example if the index is a string and self is an array or a number. Also returns None if the given key does not exist in the map or the given index is not within the bounds of the array.

fn get_mut<I: Index>(&mut self, index: I) -> Option<&mut Self>

Mutably index into a TOML array or map. A string index can be used to access a value in a map, and a usize index can be used to access an element of an array.

Returns None if the type of self does not match the type of the index, for example if the index is a string and self is an array or a number. Also returns None if the given key does not exist in the map or the given index is not within the bounds of the array.

fn as_integer(&self) -> Option<i64>

Extracts the integer value if it is an integer.

fn is_integer(&self) -> bool

Tests whether this value is an integer.

fn as_float(&self) -> Option<f64>

Extracts the float value if it is a float.

fn is_float(&self) -> bool

Tests whether this value is a float.

fn as_bool(&self) -> Option<bool>

Extracts the boolean value if it is a boolean.

fn is_bool(&self) -> bool

Tests whether this value is a boolean.

fn as_str(&self) -> Option<&str>

Extracts the string of this value if it is a string.

fn is_str(&self) -> bool

Tests if this value is a string.

fn as_datetime(&self) -> Option<&Datetime>

Extracts the datetime value if it is a datetime.

Note that a parsed TOML value will only contain ISO 8601 dates. An example date is:

1979-05-27T07:32:00Z
fn is_datetime(&self) -> bool

Tests whether this value is a datetime.

fn as_array(&self) -> Option<&Vec<Self>>

Extracts the array value if it is an array.

fn as_array_mut(&mut self) -> Option<&mut Vec<Self>>

Extracts the array value if it is an array.

fn is_array(&self) -> bool

Tests whether this value is an array.

fn as_table(&self) -> Option<&Table>

Extracts the table value if it is a table.

fn as_table_mut(&mut self) -> Option<&mut Table>

Extracts the table value if it is a table.

fn is_table(&self) -> bool

Tests whether this value is a table.

fn same_type(&self, other: &Self) -> bool

Tests whether this and another value have the same type.

fn type_str(&self) -> &'static str

Returns a human-readable representation of the type of this value.

Trait Implementations

impl Clone for Value

fn clone(&self) -> Self

impl Debug for Value

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Display for Value

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl From<Datetime> for Value

fn from(val: Datetime) -> Value

impl From<Map<String, Value>> for Value

fn from(val: Table) -> Value

impl From<String> for Value

fn from(val: String) -> Value

impl From<bool> for Value

fn from(val: bool) -> Value

impl From<f32> for Value

fn from(val: f32) -> Value

impl From<f64> for Value

fn from(val: f64) -> Value

impl From<i32> for Value

fn from(val: i32) -> Value

impl From<i64> for Value

fn from(val: i64) -> Value

impl From<i8> for Value

fn from(val: i8) -> Value

impl From<u32> for Value

fn from(val: u32) -> Value

impl From<u8> for Value

fn from(val: u8) -> Value

impl FromStr for Value

type Err = Error;
fn from_str(s: &str) -> Result<Self, Self::Err>

impl IntoDeserializer<'_, Error> for Value

type Deserializer = Value;
fn into_deserializer(self) -> Self

impl PartialEq for Value

fn eq(&self, other: &Self) -> bool

impl Serialize for Value

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
    S: Serializer,

impl StructuralPartialEq for Value

impl<'a> From<&'a str> for Value

fn from(val: &'a str) -> Self

impl<'de> Deserialize<'de> for Value

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
    D: Deserializer<'de>,

impl<'de> Deserializer<'de> for Value

type Error = Error;
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error>
where
    V: Visitor<'de>,
fn deserialize_enum<V>(self, _name: &'static str, _variants: &'static [&'static str], visitor: V) -> Result<V::Value, Error>
where
    V: Visitor<'de>,
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Error>
where
    V: Visitor<'de>,
fn deserialize_newtype_struct<V>(self, _name: &'static str, visitor: V) -> Result<V::Value, Error>
where
    V: Visitor<'de>,
fn deserialize_struct<V>(self, name: &'static str, _fields: &'static [&'static str], visitor: V) -> Result<V::Value, Error>
where
    V: Visitor<'de>,
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_unit_struct<V>(self, name: &'static str, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_tuple_struct<V>(self, name: &'static str, len: usize, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_tuple<V>(self, len: usize, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, <Self as Deserializer<'de>>::Error>
where
    V: Visitor<'de>,

impl<I> Index<I> for Value where I: Index,

type Output = Value;
fn index(&self, index: I) -> &Self

impl<I> IndexMut<I> for Value where I: Index,

fn index_mut(&mut self, index: I) -> &mut Self

impl<S: Into<String> + Hash + Eq, V: Into<Self>> From<HashMap<S, V>> for Value

fn from(val: HashMap<S, V>) -> Self

impl<S: Into<String>, V: Into<Self>> From<BTreeMap<S, V>> for Value

fn from(val: BTreeMap<S, V>) -> Self

impl<V: Into<Self>> From<Vec<V>> for Value

fn from(val: Vec<V>) -> Self

Auto Trait Implementations

impl Freeze for Value

impl RefUnwindSafe for Value

impl Send for Value

impl Sync for Value

impl Unpin for Value

impl UnsafeUnpin for Value

impl UnwindSafe for Value

Blanket Implementations

impl<T> Any for Value where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for Value where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for Value where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for Value where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> DeserializeOwned for Value where T: for<'de> Deserialize<'de>,

impl<T> From<T> for Value

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for Value where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T> ToString for Value where T: Display + ?Sized,

fn to_string(&self) -> String

impl<T, U> Into<U> for Value where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for Value where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for Value where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>