1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
mod client;
pub mod types;

pub use crate::{
    client::Client,
    types::{
        InvalidApiResponseError,
        InvalidOverwolfResponseError,
        OverwolfPlayer,
        OverwolfResponse,
        Platform,
        SessionsData,
        Stat,
        UserData,
    },
};

/// Result type
pub type R6Result<T> = Result<T, Error>;

/// Error Type
#[derive(Debug, thiserror::Error)]
pub enum Error {
    /// Reqwest HTTP error
    #[error(transparent)]
    Reqwest(#[from] reqwest::Error),

    /// Url Parse Error
    #[error(transparent)]
    Url(#[from] url::ParseError),

    /// An API Response returned an error
    #[error("invalid api response")]
    InvalidApiResponse(#[from] InvalidApiResponseError),

    /// An Overwolf Response returned an error.
    #[error("invalid overwolf response")]
    InvalidOverwolfResponse(#[from] InvalidOverwolfResponseError),

    /// The username is empty
    #[error("the username is empty")]
    EmptyUsername,
}