mdk_storage_traits/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Clone, PartialEq, Eq, Error)]
11pub enum MdkStorageError {
12 #[error("database error: {0}")]
14 Database(String),
15
16 #[error("serialization error: {0}")]
18 Serialization(String),
19
20 #[error("deserialization error: {0}")]
22 Deserialization(String),
23
24 #[error("not found: {0}")]
26 NotFound(String),
27
28 #[error("error: {0}")]
30 Other(String),
31}
32
33#[cfg(test)]
34mod tests {
35 use super::*;
36
37 #[test]
38 fn test_mdk_storage_error_display() {
39 let err = MdkStorageError::Database("connection failed".to_string());
40 assert_eq!(err.to_string(), "database error: connection failed");
41
42 let err = MdkStorageError::Serialization("invalid json".to_string());
43 assert_eq!(err.to_string(), "serialization error: invalid json");
44
45 let err = MdkStorageError::Deserialization("parse error".to_string());
46 assert_eq!(err.to_string(), "deserialization error: parse error");
47
48 let err = MdkStorageError::NotFound("key package".to_string());
49 assert_eq!(err.to_string(), "not found: key package");
50
51 let err = MdkStorageError::Other("unexpected error".to_string());
52 assert_eq!(err.to_string(), "error: unexpected error");
53 }
54
55 #[test]
56 fn test_mdk_storage_error_debug() {
57 let err = MdkStorageError::Database("test".to_string());
58 let debug_str = format!("{:?}", err);
59 assert!(debug_str.contains("Database"));
60 assert!(debug_str.contains("test"));
61 }
62
63 #[test]
64 fn test_mdk_storage_error_is_error() {
65 let err: Box<dyn std::error::Error> =
66 Box::new(MdkStorageError::Database("test".to_string()));
67 assert!(err.to_string().contains("database error"));
68 }
69}