glycin_common/
error.rs

1use std::num::TryFromIntError;
2use std::sync::Arc;
3
4#[derive(Debug, Clone, thiserror::Error)]
5#[non_exhaustive]
6pub enum Error {
7    #[error("Remote error: {0}")]
8    Io(Arc<std::io::Error>),
9    #[error("OutOfMemory")]
10    OutOfMemory,
11    #[error("TryFromIntError")]
12    TryFromIntError(#[from] TryFromIntError),
13}
14
15impl From<std::io::Error> for Error {
16    fn from(err: std::io::Error) -> Self {
17        if err.kind() == std::io::ErrorKind::OutOfMemory {
18            Self::OutOfMemory
19        } else {
20            Self::Io(Arc::new(err))
21        }
22    }
23}