1use thiserror::Error;
2use std::io;
3use postcard;
4use atomicwrites;
5
6#[derive(Error, Debug)]
7pub enum MmapVecDequeError {
8 #[error("I/O error: {0}")]
9 Io(#[from] io::Error),
10
11 #[error("Serialization/Deserialization error: {0}")]
12 Serde(#[from] postcard::Error),
13
14 #[error("Atomic write error: {0}")]
18 AtomicWrite(#[from] atomicwrites::Error<std::io::Error>),
19
20 #[error("Type mismatch: stored type `{stored}`, requested type `{requested}`")]
21 TypeMismatch { stored: String, requested: String },
22
23 #[error("Element size mismatch: stored size `{stored}`, requested size `{requested}`")]
24 ElementSizeMismatch { stored: usize, requested: usize },
25
26 #[error("Zero-sized types are not supported")]
27 ZeroSizedType,
28
29 #[error("Index out of range")]
30 IndexOutOfRange,
31
32 #[error("Chunk size mismatch: stored size `{stored}`, requested size `{requested}`")]
33 ChunkSizeMismatch { stored: usize, requested: usize },
34
35 #[error("Other error: {0}")]
36 Other(String),
37}