use std::fmt;
use crate::{Browser, Platform};
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum Error {
InvalidVersion,
UnsupportedPlatform {
browser: Browser,
platform: Platform,
},
InvalidLanguage,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InvalidVersion => f.write_str("a browser version must be above zero"),
Self::UnsupportedPlatform { browser, platform } => {
write!(f, "no template for {browser:?} on {platform:?}")
}
Self::InvalidLanguage => f.write_str("invalid Accept-Language tag or quality value"),
}
}
}
impl std::error::Error for Error {}