icu_datetime/provider/pattern/
error.rs1use crate::provider::fields;
6use displaydoc::Display;
7
8#[derive(Display, Debug, PartialEq, Copy, Clone)]
16#[allow(missing_docs)]
17#[non_exhaustive]
18pub enum PatternError {
19 #[displaydoc("{0:?} invalid field length in pattern")]
20 FieldLengthInvalid(fields::FieldSymbol),
21 #[displaydoc("unknown substitution {0} in pattern")]
22 UnknownSubstitution(char),
23 #[displaydoc("invalid symbol {0} in pattern")]
24 InvalidSymbol(char),
25 #[displaydoc("unclosed literal in pattern")]
26 UnclosedLiteral,
27 #[displaydoc("unclosed placeholder in pattern")]
28 UnclosedPlaceholder,
29 #[displaydoc("plural pattern variants are only supported for week-of-month and week-of-year")]
30 UnsupportedPluralPivot,
31}
32
33impl core::error::Error for PatternError {}
34
35impl From<fields::Error> for PatternError {
36 fn from(input: fields::Error) -> Self {
37 match input {
38 fields::Error::InvalidLength(symbol) => Self::FieldLengthInvalid(symbol),
39 }
40 }
41}