atrium-identity 0.1.9

Resolver library for decentralized identities in atproto using DIDs and handles
Documentation
use atrium_api::types::string::Did;
use atrium_xrpc::http::StatusCode;
use atrium_xrpc::http::uri::InvalidUri;
use thiserror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("resource not found")]
    NotFound,
    #[error("invalid at identifier: {0}")]
    AtIdentifier(String),
    #[error("invalid did: {0}")]
    Did(String),
    #[error("invalid did document: {0}")]
    DidDocument(String),
    #[error("protected resource metadata is invalid: {0}")]
    ProtectedResourceMetadata(String),
    #[error("authorization server metadata is invalid: {0}")]
    AuthorizationServerMetadata(String),
    #[error("dns resolver error: {0}")]
    DnsResolver(Box<dyn std::error::Error + Send + Sync + 'static>),
    #[error("unsupported did method: {0:?}")]
    UnsupportedDidMethod(Did),
    #[error(transparent)]
    Http(#[from] atrium_xrpc::http::Error),
    #[error("http client error: {0}")]
    HttpClient(Box<dyn std::error::Error + Send + Sync + 'static>),
    #[error("http status: {0:?}")]
    HttpStatus(StatusCode),
    #[error(transparent)]
    SerdeJson(#[from] serde_json::Error),
    #[error(transparent)]
    SerdeHtmlForm(#[from] serde_html_form::ser::Error),
    #[error(transparent)]
    Uri(#[from] InvalidUri),
}

pub type Result<T> = core::result::Result<T, Error>;