1use std::{borrow::Cow, io};
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum DigitalisError {
7 #[error("IO error: {0}")]
8 IOError(#[from] io::Error),
9 #[error("JSON error")]
10 JsonError(#[from] serde_json::Error),
11 #[error("Binary deserialize error: {0}")]
12 BinaryDeserializeError(Cow<'static, str>),
13 #[error("Channel send error")]
14 ChannelSendError,
15 #[error("Protobuf error {0}")]
16 ProtobufError(#[from] protobuf::Error),
17 #[error("Unexpected websocket message: {0}")]
18 UnexpectedWebsocketMessage(Cow<'static, str>),
19}
20
21pub type DigitalisResult<T> = Result<T, DigitalisError>;