use std::fmt::Display;
pub(crate) const ERROR_SPLIT_RAW: &str = "не удалось разделить ответ";
pub(crate) const ERROR_SPLIT_HEADERS: &str = "не удалось разделить заголовки ответа";
pub(crate) const ERROR_HTTP_VERSION_MISSING: &str = "в заголовке отсутствует версия http протокола";
pub(crate) const ERROR_HTTP_CODE_MISSING: &str = "в заголовке отсутствует код ответа";
pub(crate) const ERROR_PARSING_HTTP_CODE: &str = "не удалось преобразовать код ответа";
pub(crate) const ERROR_PARSING_DATETIME: &str = "не удалось преобразовать время";
pub(crate) const ERROR_PARSING_CAR_NUMBER: &str = "не удалось преобразовать номер автомобиля";
pub(crate) const ERROR_PARSING_EVENT_STATUS: &str = "не удалось преобразовать статус события проезда автомобиля";
pub(crate) const ERROR_IP_LOOKUP: &str = "не удалось распознать ip";
#[derive(Debug, PartialEq)]
pub enum WardError {
NetworkError(String),
HTTPError(String),
ParseError(String),
}
impl Display for WardError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match &self {
WardError::NetworkError(err) => write!(f, "Сетевая ошибка: {err}"),
WardError::HTTPError(err) => write!(f, "Ошибка HTTP: {err}"),
WardError::ParseError(err) => write!(f, "Ошибка парсера: {err}"),
}
}
}