use std::{error::Error, fmt::Display};
#[allow(unused_imports)]
use crate::*;
#[derive(Debug)]
pub enum PropertyError {
ParseFail(Option<String>, Box<dyn Error>),
ResolveFail(String),
ResolveNotFound(String),
RecursiveFail(String),
NotFound(String),
ResourceNotFound,
}
#[derive(Debug)]
pub(crate) struct SalakParseError(String);
impl Display for SalakParseError {
#[inline]
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(&self.0)
}
}
impl Error for SalakParseError {}
impl PropertyError {
#[inline]
pub fn parse_fail(msg: &str) -> Self {
PropertyError::ParseFail(None, Box::new(SalakParseError(msg.to_string())))
}
}
impl<E: Error + 'static> From<E> for PropertyError {
#[inline]
fn from(err: E) -> Self {
PropertyError::ParseFail(None, Box::new(err))
}
}