webterm_core/models/
webterm_error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use crate::models::reader_socket_error::ReaderSocketError;
use std::array::TryFromSliceError;
use std::fmt;

#[derive(Debug)]
pub enum WebtermError {
    ReaderSocketError(ReaderSocketError),
    RuntimeError(String),
    EncryptionError(String),
    DecryptionError(String),
    TryFromSliceError(TryFromSliceError),
}

impl std::error::Error for WebtermError {}

impl fmt::Display for WebtermError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            WebtermError::ReaderSocketError(e) => write!(f, "Reader socket error: {}", e),
            WebtermError::RuntimeError(e) => write!(f, "Runtime Error: {}", e),
            WebtermError::EncryptionError(e) => write!(f, "Encryption Error: {}", e),
            WebtermError::DecryptionError(e) => write!(f, "Decryption Error: {}", e),
            WebtermError::TryFromSliceError(e) => write!(f, "TryFromSliceError: {}", e),
        }
    }
}

impl From<ReaderSocketError> for WebtermError {
    fn from(err: ReaderSocketError) -> Self {
        WebtermError::ReaderSocketError(err)
    }
}

impl From<TryFromSliceError> for WebtermError {
    fn from(err: TryFromSliceError) -> Self {
        WebtermError::TryFromSliceError(err)
    }
}