1//! Part of a format description.
23use crate::format_description::modifier;
45/// 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.
10Day(modifier::Day),
11/// Month of the year.
12Month(modifier::Month),
13/// Ordinal day of the year.
14Ordinal(modifier::Ordinal),
15/// Day of the week.
16Weekday(modifier::Weekday),
17/// Week within the year.
18WeekNumber(modifier::WeekNumber),
19/// Year of the date.
20Year(modifier::Year),
21/// Hour of the day.
22Hour(modifier::Hour),
23/// Minute within the hour.
24Minute(modifier::Minute),
25/// AM/PM part of the time.
26Period(modifier::Period),
27/// Second within the minute.
28Second(modifier::Second),
29/// Subsecond within the second.
30Subsecond(modifier::Subsecond),
31/// Hour of the UTC offset.
32OffsetHour(modifier::OffsetHour),
33/// Minute within the hour of the UTC offset.
34OffsetMinute(modifier::OffsetMinute),
35/// Second within the minute of the UTC offset.
36OffsetSecond(modifier::OffsetSecond),
37/// A number of bytes to ignore when parsing. This has no effect on formatting.
38Ignore(modifier::Ignore),
39/// A Unix timestamp.
40UnixTimestamp(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.
43End(modifier::End),
44}