time/format_description/
component.rs

1//! Part of a format description.
2
3use crate::format_description::modifier;
4
5/// A component of a larger format description.
6#[non_exhaustive]
7#[derive(#[automatically_derived]
impl ::core::fmt::Debug for Component {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        match self {
            Component::Day(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Day",
                    &__self_0),
            Component::Month(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Month",
                    &__self_0),
            Component::Ordinal(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "Ordinal", &__self_0),
            Component::Weekday(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "Weekday", &__self_0),
            Component::WeekNumber(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "WeekNumber", &__self_0),
            Component::Year(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Year",
                    &__self_0),
            Component::Hour(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Hour",
                    &__self_0),
            Component::Minute(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Minute",
                    &__self_0),
            Component::Period(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Period",
                    &__self_0),
            Component::Second(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Second",
                    &__self_0),
            Component::Subsecond(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "Subsecond", &__self_0),
            Component::OffsetHour(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "OffsetHour", &__self_0),
            Component::OffsetMinute(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "OffsetMinute", &__self_0),
            Component::OffsetSecond(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "OffsetSecond", &__self_0),
            Component::Ignore(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Ignore",
                    &__self_0),
            Component::UnixTimestamp(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f,
                    "UnixTimestamp", &__self_0),
            Component::End(__self_0) =>
                ::core::fmt::Formatter::debug_tuple_field1_finish(f, "End",
                    &__self_0),
        }
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for Component {
    #[inline]
    fn clone(&self) -> Component {
        let _: ::core::clone::AssertParamIsClone<modifier::Day>;
        let _: ::core::clone::AssertParamIsClone<modifier::Month>;
        let _: ::core::clone::AssertParamIsClone<modifier::Ordinal>;
        let _: ::core::clone::AssertParamIsClone<modifier::Weekday>;
        let _: ::core::clone::AssertParamIsClone<modifier::WeekNumber>;
        let _: ::core::clone::AssertParamIsClone<modifier::Year>;
        let _: ::core::clone::AssertParamIsClone<modifier::Hour>;
        let _: ::core::clone::AssertParamIsClone<modifier::Minute>;
        let _: ::core::clone::AssertParamIsClone<modifier::Period>;
        let _: ::core::clone::AssertParamIsClone<modifier::Second>;
        let _: ::core::clone::AssertParamIsClone<modifier::Subsecond>;
        let _: ::core::clone::AssertParamIsClone<modifier::OffsetHour>;
        let _: ::core::clone::AssertParamIsClone<modifier::OffsetMinute>;
        let _: ::core::clone::AssertParamIsClone<modifier::OffsetSecond>;
        let _: ::core::clone::AssertParamIsClone<modifier::Ignore>;
        let _: ::core::clone::AssertParamIsClone<modifier::UnixTimestamp>;
        let _: ::core::clone::AssertParamIsClone<modifier::End>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for Component { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for Component {
    #[inline]
    fn eq(&self, other: &Component) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr &&
            match (self, other) {
                (Component::Day(__self_0), Component::Day(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Month(__self_0), Component::Month(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Ordinal(__self_0), Component::Ordinal(__arg1_0))
                    => __self_0 == __arg1_0,
                (Component::Weekday(__self_0), Component::Weekday(__arg1_0))
                    => __self_0 == __arg1_0,
                (Component::WeekNumber(__self_0),
                    Component::WeekNumber(__arg1_0)) => __self_0 == __arg1_0,
                (Component::Year(__self_0), Component::Year(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Hour(__self_0), Component::Hour(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Minute(__self_0), Component::Minute(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Period(__self_0), Component::Period(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Second(__self_0), Component::Second(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::Subsecond(__self_0),
                    Component::Subsecond(__arg1_0)) => __self_0 == __arg1_0,
                (Component::OffsetHour(__self_0),
                    Component::OffsetHour(__arg1_0)) => __self_0 == __arg1_0,
                (Component::OffsetMinute(__self_0),
                    Component::OffsetMinute(__arg1_0)) => __self_0 == __arg1_0,
                (Component::OffsetSecond(__self_0),
                    Component::OffsetSecond(__arg1_0)) => __self_0 == __arg1_0,
                (Component::Ignore(__self_0), Component::Ignore(__arg1_0)) =>
                    __self_0 == __arg1_0,
                (Component::UnixTimestamp(__self_0),
                    Component::UnixTimestamp(__arg1_0)) => __self_0 == __arg1_0,
                (Component::End(__self_0), Component::End(__arg1_0)) =>
                    __self_0 == __arg1_0,
                _ => unsafe { ::core::intrinsics::unreachable() }
            }
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for Component {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_receiver_is_total_eq(&self) -> () {
        let _: ::core::cmp::AssertParamIsEq<modifier::Day>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Month>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Ordinal>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Weekday>;
        let _: ::core::cmp::AssertParamIsEq<modifier::WeekNumber>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Year>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Hour>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Minute>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Period>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Second>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Subsecond>;
        let _: ::core::cmp::AssertParamIsEq<modifier::OffsetHour>;
        let _: ::core::cmp::AssertParamIsEq<modifier::OffsetMinute>;
        let _: ::core::cmp::AssertParamIsEq<modifier::OffsetSecond>;
        let _: ::core::cmp::AssertParamIsEq<modifier::Ignore>;
        let _: ::core::cmp::AssertParamIsEq<modifier::UnixTimestamp>;
        let _: ::core::cmp::AssertParamIsEq<modifier::End>;
    }
}Eq)]
8pub enum Component {
9    /// Day of the month.
10    Day(modifier::Day),
11    /// Month of the year.
12    Month(modifier::Month),
13    /// Ordinal day of the year.
14    Ordinal(modifier::Ordinal),
15    /// Day of the week.
16    Weekday(modifier::Weekday),
17    /// Week within the year.
18    WeekNumber(modifier::WeekNumber),
19    /// Year of the date.
20    Year(modifier::Year),
21    /// Hour of the day.
22    Hour(modifier::Hour),
23    /// Minute within the hour.
24    Minute(modifier::Minute),
25    /// AM/PM part of the time.
26    Period(modifier::Period),
27    /// Second within the minute.
28    Second(modifier::Second),
29    /// Subsecond within the second.
30    Subsecond(modifier::Subsecond),
31    /// Hour of the UTC offset.
32    OffsetHour(modifier::OffsetHour),
33    /// Minute within the hour of the UTC offset.
34    OffsetMinute(modifier::OffsetMinute),
35    /// Second within the minute of the UTC offset.
36    OffsetSecond(modifier::OffsetSecond),
37    /// A number of bytes to ignore when parsing. This has no effect on formatting.
38    Ignore(modifier::Ignore),
39    /// A Unix timestamp.
40    UnixTimestamp(modifier::UnixTimestamp),
41    /// The end of input. Parsing this component will fail if there is any input remaining. This
42    /// component neither affects formatting nor consumes any input when parsing.
43    End(modifier::End),
44}