use crate::fields;
use std::fmt;
#[derive(Debug, PartialEq)]
pub enum Error {
FieldLengthInvalid(fields::FieldSymbol),
UnknownSubstitution(char),
UnclosedLiteral,
UnclosedPlaceholder,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
Self::FieldLengthInvalid(symbol) => {
write!(f, "{:?} invalid field length in pattern", symbol)
}
Self::UnknownSubstitution(ch) => write!(f, "unknown substitution {} in pattern", ch),
Self::UnclosedLiteral => write!(f, "unclosed literal in pattern"),
Self::UnclosedPlaceholder => write!(f, "unclosed placeholder in pattern"),
}
}
}
impl From<fields::Error> for Error {
fn from(input: fields::Error) -> Self {
match input {
fields::Error::InvalidLength(symbol) => Self::FieldLengthInvalid(symbol),
}
}
}