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
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.