Skip to main content

exo_dag_db_core/
error.rs

1//! Error types for ExoChain DAG DB contract helpers.
2
3use thiserror::Error;
4
5/// Result alias used by ExoChain DAG DB contract helpers.
6pub type Result<T> = std::result::Result<T, DagDbError>;
7
8/// Errors produced by deterministic DAG DB contract code.
9#[derive(Debug, Error, PartialEq, Eq)]
10pub enum DagDbError {
11    /// CBOR serialization failed while building canonical hash material.
12    #[error("dagdb serialization error: {0}")]
13    Serialization(String),
14}
15
16#[cfg(test)]
17mod tests {
18    use super::{DagDbError, Result};
19
20    #[test]
21    fn serialization_error_display_is_stable() {
22        let error = DagDbError::Serialization("cbor writer failed".into());
23        assert_eq!(
24            error.to_string(),
25            "dagdb serialization error: cbor writer failed"
26        );
27
28        let result: Result<()> = Err(error);
29        assert!(matches!(result, Err(DagDbError::Serialization(_))));
30    }
31}