use serde_json;
use std::result;
use thiserror::Error;
#[derive(Debug, Error, Clone)]
pub enum Error {
#[error("DIDComm error: {0}")]
DIDComm(String),
#[error("Serialization error: {0}")]
SerializationError(String),
#[error("Parse error: {0}")]
ParseError(String),
#[error("Validation error: {0}")]
Validation(String),
#[error("Invalid message type: {0}")]
InvalidMessageType(String),
#[error("CAIP error: {0}")]
CaipError(#[from] tap_caip::error::Error),
}
impl From<serde_json::Error> for Error {
fn from(err: serde_json::Error) -> Self {
Error::SerializationError(err.to_string())
}
}
pub type Result<T> = result::Result<T, Error>;