1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use thiserror::Error;

pub type Result<T> = std::result::Result<T, TokenGenerationError>;

/// This error contains all predictable types of failures
/// that can occur during the token generation/signing and requesting.
#[derive(Debug, Error)]
pub enum TokenGenerationError {
    /// Invalid lifetime
    #[error("The provided lifetime '{0}' is out of range 30..3600.")]
    InvalidLifetime(i64),
    /// JsonWebToken library error
    #[error("JsonWebTokenError occurred: {0}")]
    JsonWebTokenError(#[from] jsonwebtoken::errors::Error),
    /// Reqwest library error
    #[error("ReqwestError occurred: {0}")]
    ReqwestError(#[from] reqwest::Error),
    /// Serde library error
    #[error("SerdeError occurred: {0}")]
    SerdeError(#[from] serde_json::Error),
}