ricecoder_undo_redo/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum UndoRedoError {
8 #[error("Change not found: {0}")]
10 ChangeNotFound(String),
11
12 #[error("Checkpoint not found: {0}")]
14 CheckpointNotFound(String),
15
16 #[error("No more undos available")]
18 NoMoreUndos,
19
20 #[error("No more redos available")]
22 NoMoreRedos,
23
24 #[error("Storage error: {0}")]
26 StorageError(String),
27
28 #[error("Validation error: {0}")]
30 ValidationError(String),
31
32 #[error("Serialization error: {0}")]
34 SerializationError(#[from] serde_json::Error),
35
36 #[error("IO error: {0}")]
38 IoError(#[from] std::io::Error),
39}
40
41impl UndoRedoError {
42 pub fn change_not_found(id: impl Into<String>) -> Self {
44 Self::ChangeNotFound(id.into())
45 }
46
47 pub fn checkpoint_not_found(id: impl Into<String>) -> Self {
49 Self::CheckpointNotFound(id.into())
50 }
51
52 pub fn storage_error(msg: impl Into<String>) -> Self {
54 Self::StorageError(msg.into())
55 }
56
57 pub fn validation_error(msg: impl Into<String>) -> Self {
59 Self::ValidationError(msg.into())
60 }
61}