Skip to main content

deep_time/
error.rs

1//! [`DtErrKind`] and main error type [`DtErr`].
2//!
3//! [`DtErr`] is a type alias to [`AnErr`] — a compact,
4//! zero-allocation error that supports chaining with
5//! source locations and short per-level reasons.
6
7use crate::AnErr;
8
9#[non_exhaustive]
10#[derive(Debug, Clone, Copy, PartialEq, Eq)]
11pub enum DtErrKind {
12    UnexpectedEnd,
13    UnexpectedInputEnd,
14    TruncatedDirective,
15    UnknownItem,
16    UnsupportedItem,
17    BadFractional,
18    MismatchedLiteral,
19    ExpectedValue,
20    ExpectedYear,
21    ExpectedMonth,
22    ExpectedDay,
23    ExpectedDayOfYear,
24    ExpectedHour,
25    ExpectedMinute,
26    ExpectedSecond,
27    ExpectedFractionalSeconds,
28    ExpectedTimestamp,
29    ExpectedWeekNumber,
30    ExpectedWeekdayNumber,
31    InvalidName,
32    InvalidTimezoneOffset,
33    MustStartWith,
34    InvalidNumber,
35    InvalidItem,
36    InvalidBytes,
37    InvalidSyntax,
38    OutOfRange,
39    TrailingCharacters,
40    Incomplete,
41    InvalidInput,
42    InternalErr,
43    IOErr,
44}
45
46// 120 bytes
47pub type DtErr = AnErr<DtErrKind, 2, 49>;