use crate::{Category, Kind, Location};
use core::fmt::{Debug, Display};
pub trait Error: Debug + Display {
type R;
type Category: Category<R = Self::R>;
type Kind: Kind<R = Self::R, Category = Self::Category>;
fn kind(&self) -> Self::Kind;
#[inline]
fn category(&self) -> Self::Category {
self.kind().category()
}
fn location(&self) -> Location {
Location::undefined()
}
}