use std::fmt::Debug;
use tokio::sync::mpsc::error::SendError;
#[derive(Clone, Copy, Debug)]
pub enum Error {
FailedStopNode,
FailedStartWorker,
FailedStopWorker,
FailedListWorker,
FailedSendMessage,
FailedLoadData,
InternalIOFailure,
}
impl Error {
pub const DOMAIN_CODE: u32 = 11_000;
pub const DOMAIN_NAME: &'static str = "OCKAM_NODE";
}
impl From<Error> for ockam_core::Error {
fn from(e: Error) -> ockam_core::Error {
ockam_core::Error::new(Error::DOMAIN_CODE + (e as u32), Error::DOMAIN_NAME)
}
}
impl From<crate::NodeError> for ockam_core::Error {
fn from(_: crate::NodeError) -> Self {
Error::InternalIOFailure.into()
}
}
impl<T: Debug> From<SendError<T>> for Error {
fn from(_: SendError<T>) -> Error {
Error::InternalIOFailure
}
}