shift_client/
error.rs

1/// Library result type
2pub type ShiftResult<T> = Result<T, ShiftError>;
3
4pub type RewardsPageError = crate::types::rewards::rewards_page::FromHtmlError;
5pub type InvalidHomePageError = crate::types::home_page::FromHtmlError;
6pub type RewardFormError = crate::types::rewards::reward_form::FromHtmlError;
7pub type InvalidCodeRedemptionPageError =
8    crate::types::rewards::code_redemption_page::FromHtmlError;
9pub type InvalidAccountPage = crate::types::account_page::FromHtmlError;
10
11/// The library error type
12#[derive(Debug, thiserror::Error)]
13pub enum ShiftError {
14    /// Reqwest HTTP error
15    #[error(transparent)]
16    Reqwest(#[from] reqwest::Error),
17
18    /// The password or email was incorrect
19    #[error("incorrect email or password")]
20    IncorrectEmailOrPassword,
21
22    /// Invalid HTTP Redirect
23    #[error("invalid http redirect '{0}'")]
24    InvalidRedirect(String),
25
26    /// Json Error
27    #[error(transparent)]
28    Json(#[from] serde_json::Error),
29
30    /// Invalid Rewards page
31    #[error("invalid rewards page")]
32    InvalidRewardsPage(#[from] RewardsPageError),
33    /// Invalid Home page
34    #[error("invalid home page")]
35    InvalidHomePage(#[from] InvalidHomePageError),
36    /// Invalid RewardForm
37    #[error("invalid reward form")]
38    InvalidRewardForm(#[from] RewardFormError),
39    /// Invalid code redemption page
40    #[error("invalid code redemption page")]
41    InvalidCodeRedemptionPage(#[from] InvalidCodeRedemptionPageError),
42    /// Invalid Account page
43    #[error("invalid account page")]
44    InvalidAccountPage(#[from] InvalidAccountPage),
45
46    /// Missing alert notice
47    #[error("missing alert notice")]
48    MissingAlertNotice,
49
50    /// NonExistentShiftCode
51    #[error("non-existent shift code")]
52    NonExistentShiftCode,
53    /// Expired ShiftCode
54    #[error("expired shift code")]
55    ExpiredShiftCode,
56    /// Unavailable ShiftCode
57    #[error("unavailable shift code")]
58    UnavailableShiftCode,
59
60    /// Shift Code already redeemed
61    #[error("shift code already redeemed")]
62    ShiftCodeAlreadyRedeemed,
63    /// Launch shift game
64    #[error("launch a shift game to redeem the code")]
65    LaunchShiftGame,
66    /// ShiftCode Redeem Fail
67    #[error("failed to redeem shift code")]
68    ShiftCodeRedeemFail,
69
70    /// Failed to join tokio task
71    #[error("tokio task join error")]
72    TokioJoin(#[from] tokio::task::JoinError),
73}