use crate::ast::{Span, Spanned, SpannedError};
pub(crate) struct Custom {
span: Span,
message: &'static str,
}
impl Custom {
pub(crate) fn new<S>(spanned: S, message: &'static str) -> Self
where
S: Spanned,
{
Self {
span: spanned.span(),
message,
}
}
pub(crate) fn message(&self) -> &'static str {
self.message
}
}
impl From<Custom> for SpannedError {
fn from(error: Custom) -> Self {
SpannedError::msg(error.span, error.message)
}
}
impl Spanned for Custom {
fn span(&self) -> Span {
self.span
}
}