1use std::convert::From;
2use std::fmt;
3use std::io;
4
5use tokio::sync::mpsc::error::SendError;
6
7use crate::Message;
8
9pub type WebsocketResult<T> = Result<T, WebsocketError>;
10
11#[derive(Debug)]
12pub enum WebsocketError {
13 IoError(io::Error),
14 SendError(SendError<Message>),
15}
16
17impl fmt::Display for WebsocketError {
18 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
19 match *self {
20 WebsocketError::IoError(ref err) => write!(f, "{}", err),
21 WebsocketError::SendError(ref err) => write!(f, "{}", err),
22 }
23 }
24}
25
26impl std::error::Error for WebsocketError {
27
28}
29
30impl From<io::Error> for WebsocketError {
31 fn from(err: io::Error) -> Self {
32 WebsocketError::IoError(err)
33 }
34}
35
36impl From<SendError<Message>> for WebsocketError {
37 fn from(err: SendError<Message>) -> Self {
38 WebsocketError::SendError(err)
39 }
40}