tap_msg/
error.rs

1//! Error types for the tap-msg crate.
2
3use serde_json;
4use std::result;
5use thiserror::Error;
6
7/// Core TAP error types.
8#[derive(Debug, Error, Clone)]
9pub enum Error {
10    /// Error related to DIDComm operations.
11    #[error("DIDComm error: {0}")]
12    DIDComm(String),
13
14    /// Error related to serialization/deserialization.
15    #[error("Serialization error: {0}")]
16    SerializationError(String),
17
18    /// Error related to parsing operations.
19    #[error("Parse error: {0}")]
20    ParseError(String),
21
22    /// Error related to validation failures.
23    #[error("Validation error: {0}")]
24    Validation(String),
25
26    /// Error related to mismatched message types.
27    #[error("Invalid message type: {0}")]
28    InvalidMessageType(String),
29
30    /// Error related to CAIP validation.
31    #[error("CAIP error: {0}")]
32    CaipError(#[from] tap_caip::error::Error),
33}
34
35// Implement From trait for serde_json::Error
36impl From<serde_json::Error> for Error {
37    fn from(err: serde_json::Error) -> Self {
38        Error::SerializationError(err.to_string())
39    }
40}
41
42/// Custom Result type for TAP Core operations.
43pub type Result<T> = result::Result<T, Error>;