1use std::sync::PoisonError;
2
3#[derive(thiserror::Error, Debug)]
5#[allow(missing_docs)]
6#[non_exhaustive]
7pub enum Error
8{
9 #[error("SendError in streams communication, most likely end of stream: {0}.")]
10 SendError(String),
11 #[error("IO Error: {0}.")]
12 IOError(#[from] std::io::Error),
13 #[error("Serialization error: {0}")]
14 JsonSerializationError(#[from] serde_json::Error),
15 #[error("Deserialization error: {0}")]
16 DeserializationError(String),
17 #[cfg(feature = "image")]
18 #[error("Image error: {0}")]
19 ImageError(#[from] image::ImageError),
20 #[error("Poison (Mutex/RwLock) error: {0}")]
21 PoisonError(String),
22}
23
24impl<T> From<PoisonError<T>> for Error
25{
26 fn from(value: PoisonError<T>) -> Self
27 {
28 Error::PoisonError(value.to_string())
29 }
30}