Struct Datetime
struct Datetime { ... }
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.
Implementations
impl Clone for Datetime
fn clone(self: &Self) -> Datetime
impl Copy for Datetime
impl Debug for Datetime
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Display for Datetime
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for Datetime
impl Freeze for Datetime
impl From for Datetime
fn from(other: Date) -> Self
impl From for Datetime
fn from(other: Time) -> Self
impl FromStr for Datetime
fn from_str(date: &str) -> Result<Self, DatetimeParseError>
impl Ord for Datetime
fn cmp(self: &Self, other: &Datetime) -> Ordering
impl PartialEq for Datetime
fn eq(self: &Self, other: &Datetime) -> bool
impl PartialOrd for Datetime
fn partial_cmp(self: &Self, other: &Datetime) -> Option<Ordering>
impl RefUnwindSafe for Datetime
impl Send for Datetime
impl Serialize for Datetime
fn serialize<S>(self: &Self, serializer: S) -> Result<<S as >::Ok, <S as >::Error> where S: Serializer
impl StructuralPartialEq for Datetime
impl Sync for Datetime
impl Unpin for Datetime
impl UnsafeUnpin for Datetime
impl UnwindSafe for Datetime
impl<'de> Deserialize for Datetime
fn deserialize<D>(deserializer: D) -> Result<Self, <D as >::Error> where D: Deserializer<'de>
impl<T> Any for Datetime
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Datetime
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Datetime
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Datetime
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> DeserializeOwned for Datetime
impl<T> From for Datetime
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Datetime
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T> ToString for Datetime
fn to_string(self: &Self) -> String
impl<T, U> Into for Datetime
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Datetime
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Datetime
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>