Skip to main content

deep_time/
error.rs

1//! [`DtErrKind`] and main error type [`DtErr`].
2//! [`DtErr`] is a type alias to [`AnErr`].
3
4use crate::AnErr;
5
6#[non_exhaustive]
7#[repr(u8)]
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10#[cfg_attr(feature = "tsify", derive(tsify::Tsify))]
11#[cfg_attr(feature = "defmt", derive(defmt::Format))]
12pub enum DtErrKind {
13    UnexpectedEnd,
14    TruncatedDirective,
15    UnknownItem,
16    MissingFeature,
17    MissingRefTimeOrStd,
18    MustStartWith,
19    UnsupportedItem,
20    MismatchedLiteral,
21    ExpectedUnit,
22    ExpectedValue,
23    ExpectedYear,
24    ExpectedCentury,
25    ExpectedMonth,
26    ExpectedDay,
27    ExpectedDayOfYear,
28    ExpectedHour,
29    ExpectedMinute,
30    ExpectedSecond,
31    ExpectedFractional,
32    ExpectedTimestamp,
33    ExpectedWeekNumber,
34    ExpectedWeekdayNumber,
35    ExpectedDigits,
36    ExpectedMonWeekday,
37    ExpectedSunWeekday,
38    ExpectedMonWeek,
39    ExpectedSunWeek,
40    MonWeekdayOutOfRange,
41    SunWeekdayOutOfRange,
42    InvalidCodeId,
43    NonMonotonic,
44    TFieldTooShort,
45    PFieldTooShort,
46    InvalidSubmillisecond,
47    InvalidWeekdayName,
48    InvalidMonthName,
49    InvalidMeridiem,
50    InvalidScale,
51    InvalidDate,
52    InvalidTime,
53    InvalidYear,
54    InvalidMonth,
55    InvalidDay,
56    InvalidDayOfYear,
57    InvalidIsoWeekYear,
58    InvalidIsoWeek,
59    InvalidSunWeek,
60    InvalidMonWeek,
61    InvalidHour,
62    InvalidMinute,
63    InvalidSecond,
64    InvalidFractional,
65    InvalidTimestamp,
66    InvalidName,
67    InvalidTimeZone,
68    OffsetMissingSign,
69    InvalidOffsetHour,
70    InvalidOffsetMinute,
71    InvalidOffsetSecond,
72    InvalidOffsetColons,
73    InvalidOffset,
74    InvalidNumber,
75    InvalidItem,
76    InvalidBytes,
77    InvalidSyntax,
78    OutOfRange,
79    MonthOutOfRange,
80    DayOutOfRange,
81    DayOfYearOutOfRange,
82    HourOutOfRange,
83    MinuteOutOfRange,
84    SecondOutOfRange,
85    WeekOutOfRange,
86    IsoWeekOutOfRange,
87    YearOutOfRange,
88    FracOutOfRange,
89    MjdOutOfRange,
90    TrailingCharacters,
91    Incomplete,
92    InvalidInput,
93    InvalidLen,
94    InternalErr,
95    ConversionFail,
96    IOErr,
97    Empty,
98}
99
100/// Wrapper around [`AnErr`].
101///
102/// A [`DtErr`] object is 16 bytes.
103pub type DtErr = AnErr<DtErrKind, 15>;