# Struct toml::value::Datetime

source · [−]

    pub struct Datetime {
        pub date: Option<Date>,
        pub time: Option<Time>,
        pub offset: Option<Offset>,
    }

Expand description

A parsed TOML datetime value

This structure is intended to represent the datetime primitive type that can be encoded into TOML documents. This type is a parsed version that contains all metadata internally.

Currently this type is intentionally conservative and only supports `to_string` as an accessor. Over time though it’s intended that it’ll grow more support!

Note that if you’re using `Deserialize` to deserialize a TOML document, you can use this as a placeholder for where you’re expecting a datetime to be specified.

Also note though that while this type implements `Serialize` and `Deserialize` it’s only recommended to use this type with the TOML format, otherwise encoded in other formats it may look a little odd.

Depending on how the option values are used, this struct will correspond with one of the following four datetimes from the TOML v1.0.0 spec:

`date` | `time` | `offset` | TOML type
--- | --- | --- | ---
`Some(_)` | `Some(_)` | `Some(_)` | Offset Date-Time
`Some(_)` | `Some(_)` | `None` | Local Date-Time
`Some(_)` | `None` | `None` | Local Date
`None` | `Some(_)` | `None` | Local Time

1. Offset Date-Time: If all the optional values are used, `Datetime` corresponds to an Offset Date-Time. From the TOML v1.0.0 spec:

> To unambiguously represent a specific instant in time, you may use an RFC 3339 formatted date-time with offset.

>     odt1 = 1979-05-27T07:32:00Z
>     odt2 = 1979-05-27T00:32:00-07:00
>     odt3 = 1979-05-27T00:32:00.999999-07:00

> For the sake of readability, you may replace the T delimiter between date and time with a space character (as permitted by RFC 3339 section 5.6).

>     odt4 = 1979-05-27 07:32:00Z

2. Local Date-Time: If `date` and `time` are given but `offset` is `None`, `Datetime` corresponds to a Local Date-Time. From the spec:

> If you omit the offset from an RFC 3339 formatted date-time, it will represent the given date-time without any relation to an offset or timezone. It cannot be converted to an instant in time without additional information. Conversion to an instant, if required, is implementation- specific.

>     ldt1 = 1979-05-27T07:32:00
>     ldt2 = 1979-05-27T00:32:00.999999

3. Local Date: If only `date` is given, `Datetime` corresponds to a Local Date; see the docs for `Date`.

4. Local Time: If only `time` is given, `Datetime` corresponds to a Local Time; see the docs for `Time`.

## Fields

`date: Option<Date>`

Optional date. Required for: Offset Date-Time, Local Date-Time, Local Date.

`time: Option<Time>`

Optional time. Required for: Offset Date-Time, Local Date-Time, Local Time.

`offset: Option<Offset>`

Optional offset. Required for: Offset Date-Time.

## Trait Implementations

source

### impl Clone for Datetime

source

#### fn clone(&self) -> Datetime

Returns a copy of the value. Read more

1.0.0 · source

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more

source

### impl Debug for Datetime

source

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

Formats the value using the given formatter. Read more

source

### impl<'de> Deserialize<'de> for Datetime

source

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

Deserialize this value from the given Serde deserializer. Read more

source

### impl Display for Datetime

source

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

Formats the value using the given formatter. Read more

source

### impl From<Datetime> for Value

source

#### fn from(val: Datetime) -> Value

Converts to this type from the input type.

source

### impl FromStr for Datetime

#### type Err = DatetimeParseError

The associated error which can be returned from parsing.

source

#### fn from_str(date: &str) -> Result<Datetime, DatetimeParseError>

Parses a string `s` to return a value of this type. Read more

source

### impl PartialEq<Datetime> for Datetime

source

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

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

source

#### fn ne(&self, other: &Datetime) -> bool

This method tests for `!=`.

source

### impl Serialize for Datetime

source

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

Serialize this value into the given Serde serializer. Read more

source

### impl Eq for Datetime

source

### impl StructuralEq for Datetime

source

### impl StructuralPartialEq for Datetime

## Auto Trait Implementations

### impl RefUnwindSafe for Datetime

### impl Send for Datetime

### impl Sync for Datetime

### impl Unpin for Datetime

### impl UnwindSafe for Datetime

## Blanket Implementations

source

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

source

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

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

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

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

const: unstable · source

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

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

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

const: unstable · source

#### fn into(self) -> U

Calls `U::from(self)`.

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

source

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

#### type Owned = T

The resulting type after obtaining ownership.

source

#### fn to_owned(&self) -> T

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

source

#### fn clone_into(&self, target: &mut T)

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

source

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

source

#### default fn to_string(&self) -> String

Converts the given value to a `String`. Read more

source

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

#### type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

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

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

const: unstable · source

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

Performs the conversion.

source

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