The smokesignal.events web application
1use thiserror::Error;
2
3/// Errors that can occur during unsubscribe token operations
4#[derive(Debug, Error)]
5pub enum UnsubscribeTokenError {
6 /// Token format is invalid (should be payload.signature)
7 #[error("error-smokesignal-unsubscribe-1 Invalid token format")]
8 InvalidTokenFormat,
9
10 /// Signature could not be decoded from base64
11 #[error("error-smokesignal-unsubscribe-2 Signature decode error: {0}")]
12 SignatureDecodeError(String),
13
14 /// HMAC initialization failed
15 #[error("error-smokesignal-unsubscribe-3 HMAC error: {0}")]
16 HmacError(String),
17
18 /// Signature verification failed
19 #[error("error-smokesignal-unsubscribe-4 Signature verification failed")]
20 SignatureVerificationFailed,
21
22 /// Payload format is invalid
23 #[error("error-smokesignal-unsubscribe-5 Invalid payload: {0}")]
24 InvalidPayload(String),
25}