use crate::network::rpc;
use miette::{miette, Diagnostic};
use std::io;
use tarpc::client::RpcError;
#[derive(thiserror::Error, Debug, Diagnostic)]
pub enum Error {
#[error("{error_message}")]
Cli {
error_message: String,
},
#[error(transparent)]
Rpc(#[from] RpcError),
#[error(transparent)]
RpcMessage(#[from] rpc::Error),
#[error("error writing data to console: {0}")]
Io(#[from] io::Error),
}
impl Error {
pub fn new(err: miette::ErrReport) -> Self {
Error::Cli {
error_message: err.to_string(),
}
}
}
impl From<anyhow::Error> for Error {
fn from(e: anyhow::Error) -> Self {
Error::new(miette!(e.to_string()))
}
}