rts_alloc/
error.rs

1use std::fmt::Display;
2
3#[derive(Debug)]
4pub enum Error {
5    InvalidSlabSize,
6    InvalidNumWorkers,
7    InvalidWorkerIndex,
8    InvalidFileSize,
9    AlreadyInitialized,
10    InvalidHeader,
11    IoError(std::io::Error),
12    MmapError(std::io::Error),
13}
14
15impl std::error::Error for Error {}
16
17impl Display for Error {
18    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
19        match self {
20            Self::InvalidSlabSize => write!(f, "invalid slab size"),
21            Self::InvalidNumWorkers => write!(f, "invalid num workers"),
22            Self::InvalidWorkerIndex => write!(f, "invalid worker index"),
23            Self::InvalidFileSize => write!(f, "invalid file size"),
24            Self::AlreadyInitialized => write!(f, "already initialized"),
25            Self::InvalidHeader => write!(f, "invalid header"),
26            Self::IoError(err) => write!(f, "io error; err={err}"),
27            Self::MmapError(err) => write!(f, "mmap error; err={err}"),
28        }
29    }
30}
31
32impl From<std::io::Error> for Error {
33    fn from(value: std::io::Error) -> Self {
34        Self::IoError(value)
35    }
36}