r6tracker/
lib.rs

1mod client;
2pub mod types;
3
4pub use crate::{
5    client::Client,
6    types::{
7        InvalidApiResponseError,
8        InvalidOverwolfResponseError,
9        OverwolfPlayer,
10        OverwolfResponse,
11        Platform,
12        SessionsData,
13        Stat,
14        UserData,
15    },
16};
17
18/// Result type
19pub type R6Result<T> = Result<T, Error>;
20
21/// Error Type
22#[derive(Debug, thiserror::Error)]
23pub enum Error {
24    /// Reqwest HTTP error
25    #[error(transparent)]
26    Reqwest(#[from] reqwest::Error),
27
28    /// Url Parse Error
29    #[error(transparent)]
30    Url(#[from] url::ParseError),
31
32    /// An API Response returned an error
33    #[error("invalid api response")]
34    InvalidApiResponse(#[from] InvalidApiResponseError),
35
36    /// An Overwolf Response returned an error.
37    #[error("invalid overwolf response")]
38    InvalidOverwolfResponse(#[from] InvalidOverwolfResponseError),
39
40    /// The username is empty
41    #[error("the username is empty")]
42    EmptyUsername,
43}