use thiserror::Error; /// Errors that can occur during unsubscribe token operations #[derive(Debug, Error)] pub enum UnsubscribeTokenError { /// Token format is invalid (should be payload.signature) #[error("error-smokesignal-unsubscribe-1 Invalid token format")] InvalidTokenFormat, /// Signature could not be decoded from base64 #[error("error-smokesignal-unsubscribe-2 Signature decode error: {0}")] SignatureDecodeError(String), /// HMAC initialization failed #[error("error-smokesignal-unsubscribe-3 HMAC error: {0}")] HmacError(String), /// Signature verification failed #[error("error-smokesignal-unsubscribe-4 Signature verification failed")] SignatureVerificationFailed, /// Payload format is invalid #[error("error-smokesignal-unsubscribe-5 Invalid payload: {0}")] InvalidPayload(String), }