aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/error/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/error/mod.rs')
-rw-r--r--src/protocol/error/mod.rs49
1 files changed, 29 insertions, 20 deletions
diff --git a/src/protocol/error/mod.rs b/src/protocol/error/mod.rs
index 488ae0d..72a9e59 100644
--- a/src/protocol/error/mod.rs
+++ b/src/protocol/error/mod.rs
@@ -1,28 +1,37 @@
-#[derive(Debug)]
-pub enum ErrorKind {
+ #[derive(Debug, Fail)]
+pub enum ProtocolError {
+ #[fail(display = "message has wrong type")]
WrongMsgType,
+ #[fail(display = "bool value is neither 0 nor 1")]
BoolOutOfRange,
+ #[fail(display = "QVariant is not known")]
UnknownVariant,
+ #[fail(display = "wrong variant has been given")]
WrongVariant,
+ #[fail(display = "io error")]
IOError(std::io::Error),
+ #[fail(display = "could not convert from int")]
TryFromIntError(std::num::TryFromIntError),
+ #[fail(display = "utf8 error")]
Utf8Error(std::string::FromUtf8Error),
-}
+ }
-impl std::convert::From<std::io::Error> for ErrorKind {
- fn from(error: std::io::Error) -> Self {
- ErrorKind::IOError(error)
- }
-}
-
-impl std::convert::From<std::num::TryFromIntError> for ErrorKind {
- fn from(error: std::num::TryFromIntError) -> Self {
- ErrorKind::TryFromIntError(error)
- }
-}
-
-impl std::convert::From<std::string::FromUtf8Error> for ErrorKind {
- fn from(error: std::string::FromUtf8Error) -> Self {
- ErrorKind::Utf8Error(error)
- }
-}
+// impl std::error::Error for ErrorKind {}
+//
+// impl std::convert::From<std::io::Error> for ErrorKind {
+// fn from(error: std::io::Error) -> Self {
+// ErrorKind::IOError(error)
+// }
+// }
+//
+// impl std::convert::From<std::num::TryFromIntError> for ErrorKind {
+// fn from(error: std::num::TryFromIntError) -> Self {
+// ErrorKind::TryFromIntError(error)
+// }
+// }
+//
+// impl std::convert::From<std::string::FromUtf8Error> for ErrorKind {
+// fn from(error: std::string::FromUtf8Error) -> Self {
+// ErrorKind::Utf8Error(error)
+// }
+// }
letions'>-0/+32 2021-07-21add BufferViewManager and BufferViewConfigMax Audron-0/+95 2021-07-21migrate BufferSyncer to use Network derive and add to central TypesMax Audron-143/+22 2021-07-21rewrite network derive to work more consistentlyMax Audron-78/+90 this mainly ensures that the network and override_type / variant options work across the board 2021-07-21fix wrong capitalization for HighlightRuleListMax Audron-2/+2 2021-07-21implement the Network trait generically for all inner Variant TypesMax Audron-1/+66 2021-07-21change IRC MessageType to be a bitflag instead of enumMax Audron-54/+94 the BufferSyncer object uses this type in a bitflag manner to indicate all the kinds of change that happened. bitflag still allows very enum esque usage so the change is okay for the Message object. 2021-07-21fix network objectMax Audron-18/+24 2021-07-21minor docs and cleanupMax Audron-4/+8 2021-04-05WIP: impl more signalproxy objectsMax Audron-1000/+1621 2021-03-09WIP: impl signalproxy typesMax Audron-253/+376 2021-01-21add to and from network deriveMax Audron-42/+2767 2021-01-21reorganize tests and add quassel featuresMax Audron-551/+850 2021-01-04add example program: quasselproxyclientMax Audron-0/+280 and inspection proxy for quassel 2021-01-04random stuffMax Audron-2/+9 2021-01-04add more signalproxy objectsMax Audron-40/+120 2021-01-04add message parsing feature flagsMax Audron-43/+96 2021-01-04fix parsing of datetime when value is -1Max Audron-1/+9 2021-01-02update dependenciesMax Audron-267/+27 2021-01-02rework handshakemessage parsingMax Audron-141/+278 2020-10-16updateMax Audron-1553/+294 2020-10-16update paperworkMax Audron-487/+391