use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("invalid agent_id: {0}")]
InvalidAgentId(String),
#[error("unknown identity scheme")]
UnknownIdentityScheme,
#[error("signature verification failed")]
SignatureInvalid,
#[error("signature format invalid: {0}")]
SignatureFormat(String),
#[error("key unavailable: {0}")]
KeyUnavailable(String),
#[error("not found: {0}")]
NotFound(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("crypto error: {0}")]
Crypto(String),
#[error("internal error: {0}")]
Internal(String),
}
pub type Result<T> = std::result::Result<T, Error>;