webterm_core/models/
webterm_error.rs

1use crate::models::reader_socket_error::ReaderSocketError;
2use std::array::TryFromSliceError;
3use std::fmt;
4
5#[derive(Debug)]
6pub enum WebtermError {
7    ReaderSocketError(ReaderSocketError),
8    RuntimeError(String),
9    EncryptionError(String),
10    DecryptionError(String),
11    TryFromSliceError(TryFromSliceError),
12}
13
14impl std::error::Error for WebtermError {}
15
16impl fmt::Display for WebtermError {
17    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18        match self {
19            WebtermError::ReaderSocketError(e) => write!(f, "Reader socket error: {}", e),
20            WebtermError::RuntimeError(e) => write!(f, "Runtime Error: {}", e),
21            WebtermError::EncryptionError(e) => write!(f, "Encryption Error: {}", e),
22            WebtermError::DecryptionError(e) => write!(f, "Decryption Error: {}", e),
23            WebtermError::TryFromSliceError(e) => write!(f, "TryFromSliceError: {}", e),
24        }
25    }
26}
27
28impl From<ReaderSocketError> for WebtermError {
29    fn from(err: ReaderSocketError) -> Self {
30        WebtermError::ReaderSocketError(err)
31    }
32}
33
34impl From<TryFromSliceError> for WebtermError {
35    fn from(err: TryFromSliceError) -> Self {
36        WebtermError::TryFromSliceError(err)
37    }
38}