1use crate::pattern::PatternLoadError;
6use displaydoc::Display;
7use icu_calendar::AnyCalendarKind;
8use icu_provider::DataError;
9
10#[derive(Display, Debug, Copy, Clone, PartialEq)]
12#[non_exhaustive]
13pub enum DateTimeFormatterLoadError {
14    #[displaydoc("{0}")]
16    Names(PatternLoadError),
17    #[displaydoc("{0}")]
20    Data(DataError),
21}
22
23impl core::error::Error for DateTimeFormatterLoadError {}
24
25impl From<DataError> for DateTimeFormatterLoadError {
26    fn from(error: DataError) -> Self {
27        Self::Data(error)
28    }
29}
30
31#[derive(Display, Debug, Copy, Clone, PartialEq)]
33pub struct ErrorField(pub(crate) crate::provider::fields::Field);
34
35#[derive(Display, Debug, Copy, Clone, PartialEq)]
37#[displaydoc("DateTimeFormatter for {this_kind} calendar was given a {date_kind:?} calendar")]
38#[non_exhaustive]
39pub struct MismatchedCalendarError {
40    pub this_kind: AnyCalendarKind,
42    pub date_kind: Option<AnyCalendarKind>,
45}
46
47impl core::error::Error for MismatchedCalendarError {}