use serde::{Serialize, Serializer};
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug)]
pub struct Error(pub eyre::Report);
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
impl std::error::Error for Error {}
impl Serialize for Error {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_str(&self.0.to_string())
}
}
impl From<eyre::Report> for Error {
fn from(error: eyre::Report) -> Self {
Self(error)
}
}
impl From<tauri::Error> for Error {
fn from(error: tauri::Error) -> Self {
Self(eyre::eyre!(error))
}
}