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 {}