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:00For 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
sourceimpl<'de> Deserialize<'de> for Datetime
impl<'de> Deserialize<'de> for Datetime
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Ord for Datetime
impl Ord for Datetime
sourceimpl PartialOrd<Datetime> for Datetime
impl PartialOrd<Datetime> for Datetime
sourcefn partial_cmp(&self, other: &Datetime) -> Option<Ordering>
fn partial_cmp(&self, other: &Datetime) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl Copy for Datetime
impl Eq for Datetime
impl StructuralEq for Datetime
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
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<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key and return true if they are equal.