mrecordlog/
error.rs

1use std::io;
2
3use thiserror::Error;
4
5#[derive(Debug, Copy, Clone)]
6pub struct AlreadyExists;
7
8#[derive(Error, Debug)]
9pub enum CreateQueueError {
10    #[error("Already exists")]
11    AlreadyExists,
12    #[error("Io error: {0}")]
13    IoError(#[from] io::Error),
14}
15
16impl From<AlreadyExists> for CreateQueueError {
17    fn from(_: AlreadyExists) -> Self {
18        CreateQueueError::AlreadyExists
19    }
20}
21
22#[derive(Error, Debug)]
23pub enum DeleteQueueError {
24    #[error("Missing queue")]
25    MissingQueue(String),
26    #[error("Io error: {0}")]
27    IoError(#[from] io::Error),
28}
29
30impl From<MissingQueue> for DeleteQueueError {
31    fn from(missing_queue: MissingQueue) -> Self {
32        DeleteQueueError::MissingQueue(missing_queue.0)
33    }
34}
35
36#[derive(Debug, Error)]
37#[error("MultiRecordCorruption")]
38pub struct MultiRecordCorruption;
39
40impl From<MultiRecordCorruption> for ReadRecordError {
41    fn from(_: MultiRecordCorruption) -> ReadRecordError {
42        ReadRecordError::Corruption
43    }
44}
45
46#[derive(Error, Debug)]
47pub enum TruncateError {
48    #[error("Missing queue: {0}")]
49    MissingQueue(String),
50    #[error("Io error: {0}")]
51    IoError(#[from] io::Error),
52}
53
54impl From<MissingQueue> for TruncateError {
55    fn from(missing_queue: MissingQueue) -> Self {
56        TruncateError::MissingQueue(missing_queue.0)
57    }
58}
59
60#[derive(Error, Debug)]
61pub enum AppendError {
62    #[error("Io error: {0}")]
63    IoError(#[from] io::Error),
64    #[error("Missing queue: {0}")]
65    MissingQueue(String),
66    #[error("Past")]
67    Past,
68}
69
70impl From<MissingQueue> for AppendError {
71    fn from(missing_queue: MissingQueue) -> Self {
72        AppendError::MissingQueue(missing_queue.0)
73    }
74}
75
76#[derive(Debug)]
77pub struct MissingQueue(pub String);
78
79#[derive(Error, Debug)]
80pub enum ReadRecordError {
81    #[error("Io error: {0}")]
82    IoError(#[from] io::Error),
83    #[error("Corruption")]
84    Corruption,
85}