use std::io; use crossbeam::channel::RecvError; use thiserror::Error; #[derive(Error, Debug)] pub enum Error { #[error("Io error")] Io(#[from] io::Error), #[error("Channel error")] Channel(#[from] RecvError), #[error("Protobuf error")] Protobuf(#[from] protobuf::Error), #[error("Invalid packet")] InvalidPacket, #[error("Not support")] NotSupport, #[error("Stop")] Stop(String), #[error("Warn")] Warn(String), } pub type Result = std::result::Result;