use core::fmt::{self, Display, Formatter};
#[macro_export]
macro_rules! err {
($message:expr) => {{
$crate::error::Error { message: $message, location: (file!(), line!()) }
}};
}
#[derive(Debug, Clone, Copy)]
pub struct Error {
#[doc(hidden)]
pub message: &'static str,
#[doc(hidden)]
pub location: (&'static str, u32),
}
impl Display for Error {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
let (file, line) = self.location;
write!(f, "{} at {}:{}", self.message, file, line)
}
}