use std::fmt;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum SiwxError {
#[error("invalid domain: {0}")]
InvalidDomain(String),
#[error("invalid address: {0}")]
InvalidAddress(String),
#[error("invalid uri: {0}")]
InvalidUri(String),
#[error("invalid timestamp: {0}")]
InvalidTimestamp(String),
#[error("invalid nonce: {0}")]
InvalidNonce(String),
#[error("invalid statement: {0}")]
InvalidStatement(String),
#[error("message expired")]
Expired,
#[error("message not yet valid")]
NotYetValid,
#[error("invalid message format: {0}")]
InvalidFormat(String),
#[error("invalid signature: {0}")]
InvalidSignature(String),
#[error("verification failed: {0}")]
VerificationFailed(String),
}
impl SiwxError {
pub(crate) fn invalid_format(msg: impl fmt::Display) -> Self {
Self::InvalidFormat(msg.to_string())
}
}