atrium_identity/
error.rs

1use atrium_api::types::string::Did;
2use atrium_xrpc::http::uri::InvalidUri;
3use atrium_xrpc::http::StatusCode;
4use thiserror::Error;
5
6#[derive(Error, Debug)]
7pub enum Error {
8    #[error("resource not found")]
9    NotFound,
10    #[error("invalid at identifier: {0}")]
11    AtIdentifier(String),
12    #[error("invalid did: {0}")]
13    Did(String),
14    #[error("invalid did document: {0}")]
15    DidDocument(String),
16    #[error("protected resource metadata is invalid: {0}")]
17    ProtectedResourceMetadata(String),
18    #[error("authorization server metadata is invalid: {0}")]
19    AuthorizationServerMetadata(String),
20    #[error("dns resolver error: {0}")]
21    DnsResolver(Box<dyn std::error::Error + Send + Sync + 'static>),
22    #[error("unsupported did method: {0:?}")]
23    UnsupportedDidMethod(Did),
24    #[error(transparent)]
25    Http(#[from] atrium_xrpc::http::Error),
26    #[error("http client error: {0}")]
27    HttpClient(Box<dyn std::error::Error + Send + Sync + 'static>),
28    #[error("http status: {0:?}")]
29    HttpStatus(StatusCode),
30    #[error(transparent)]
31    SerdeJson(#[from] serde_json::Error),
32    #[error(transparent)]
33    SerdeHtmlForm(#[from] serde_html_form::ser::Error),
34    #[error(transparent)]
35    Uri(#[from] InvalidUri),
36}
37
38pub type Result<T> = core::result::Result<T, Error>;