libzrpc 0.1.0

A RPC library for Rust
Documentation
use std::{
    error::Error,
    fmt::{Display, Formatter},
};

use crate::types::proc_error::ProcedureError;

#[derive(Debug)]
pub enum ZRpcError {
    Io(std::io::Error),
    Serialization(String),
    TimeoutError,
    Procedure(ProcedureError),
}

impl From<std::io::Error> for ZRpcError {
    fn from(err: std::io::Error) -> Self {
        ZRpcError::Io(err)
    }
}

impl Display for ZRpcError {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        match self {
            ZRpcError::Io(e) => write!(f, "IoError: {}", e),
            ZRpcError::Serialization(e) => write!(f, "SerializationError: {}", e),
            ZRpcError::TimeoutError => write!(f, "Timeout"),
            ZRpcError::Procedure(e) => write!(f, "ProcedureError: {}", e),
        }
    }
}

impl Error for ZRpcError {}