bit cleaner websocket implementation

This commit is contained in:
2021-05-22 15:51:24 +02:00
parent 3867435a2d
commit 0e9caa496f
3 changed files with 168 additions and 77 deletions

View File

@ -11,6 +11,7 @@ pub enum Kind {
WebSocketError,
NotImplementedError,
UsimpProtocolError,
Utf8DecodeError,
}
#[derive(Copy, Clone, Debug)]
@ -59,6 +60,7 @@ impl Error {
Kind::WebSocketError => "WebSocket protocol error",
Kind::NotImplementedError => "Not yet implemented",
Kind::UsimpProtocolError => "USIMP protocol error",
Kind::Utf8DecodeError => "Unable to decode UTF-8 data",
},
}
}
@ -88,6 +90,7 @@ impl fmt::Display for Error {
Kind::WebSocketError => "websocket protocol error",
Kind::NotImplementedError => "not yet implemented",
Kind::UsimpProtocolError => "usimp protocol error",
Kind::Utf8DecodeError => "unable to decode utf-8 data",
}
.to_string();
if let Some(desc) = &self.desc {
@ -143,3 +146,14 @@ impl From<r2d2_postgres::postgres::Error> for Error {
}
}
}
impl From<std::string::FromUtf8Error> for Error {
fn from(error: std::string::FromUtf8Error) -> Self {
Error {
kind: Kind::Utf8DecodeError,
msg: Some("Unable to decode UTF-8 data".to_string()),
desc: Some(error.to_string()),
class: Class::ClientError,
}
}
}