use std::io::Error as IoError;
use protobuf::Error as ProtobufError;
use rustls::pki_types::InvalidDnsNameError;
use serde_json::error::Error as SerializationError;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("an internal error occurred, {0}")]
Internal(String),
#[error("{0}")]
Io(IoError),
#[error("{0}")]
Protobuf(ProtobufError),
#[error("{0}")]
Serialization(SerializationError),
#[error("{0}")]
Parsing(String),
#[error("{0}")]
Dns(InvalidDnsNameError),
#[error("{0}")]
Tls(rustls::Error),
#[error("{0}")]
Namespace(String),
#[error("{0}")]
Timeout(String),
}
impl From<IoError> for Error {
fn from(err: IoError) -> Error {
Error::Io(err)
}
}
impl From<ProtobufError> for Error {
fn from(err: ProtobufError) -> Error {
Error::Protobuf(err)
}
}
impl From<SerializationError> for Error {
fn from(err: SerializationError) -> Error {
Error::Serialization(err)
}
}
impl From<rustls::Error> for Error {
fn from(err: rustls::Error) -> Error {
Error::Tls(err)
}
}
impl From<InvalidDnsNameError> for Error {
fn from(err: InvalidDnsNameError) -> Error {
Error::Dns(err)
}
}