did-resolver-cheqd 1.0.1

DID Resolver Rust implementation for did:cheqd method, using the ssi crate and Cheqd GRPC APIs
Documentation
use thiserror::Error;

use super::DidCheqdError;

#[derive(Error, Debug)]
pub enum ParsingErrorSource {
    #[error("JSON parsing error: {0}")]
    JsonError(#[from] serde_json::Error),
    #[error("Invalid URL: {0}")]
    UrlParsingError(url::ParseError),
    #[error("Invalid encoding: {0}")]
    Utf8Error(#[from] std::string::FromUtf8Error),
    #[error("Invalid encoding: {0}")]
    IntConversionError(#[from] std::num::TryFromIntError),
}

impl From<serde_json::Error> for DidCheqdError {
    fn from(error: serde_json::Error) -> Self {
        DidCheqdError::ParsingError(ParsingErrorSource::JsonError(error))
    }
}

impl From<url::ParseError> for DidCheqdError {
    fn from(error: url::ParseError) -> Self {
        DidCheqdError::ParsingError(ParsingErrorSource::UrlParsingError(error))
    }
}

impl From<std::string::FromUtf8Error> for DidCheqdError {
    fn from(error: std::string::FromUtf8Error) -> Self {
        DidCheqdError::ParsingError(ParsingErrorSource::Utf8Error(error))
    }
}

impl From<std::num::TryFromIntError> for DidCheqdError {
    fn from(error: std::num::TryFromIntError) -> Self {
        DidCheqdError::ParsingError(ParsingErrorSource::IntConversionError(error))
    }
}