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(Debug, Clone, Copy, PartialEq, 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}
42