mmap_vecdeque/
error.rs

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  // Removed the Mmap variant since memmap2 doesn't provide a MmapError type.
15  // All mmap errors are covered by io::Error anyway.
16
17  #[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}