wakapi 0.3.1

Wakatime API client
Documentation
use serde::Deserialize;
use thiserror::Error;

#[derive(Error, Debug)]
pub enum WakapiError {
    #[error("Cannot find home directory")]
    HomeDirNotFound,
    #[error("Cannot read config file")]
    ConfigFileReadError(#[from] std::io::Error),
    #[error("Cannot parse config file")]
    ConfigFileParseError(#[from] toml::de::Error),
    #[error("Cannot prepare url params")]
    UrlParamsError(#[from] serde_url_params::Error),
    #[error("Request error")]
    RequestError(#[from] reqwest::Error),
    #[error("Error response")]
    ResponseError(ErrorMessage),
    #[error("Unknown error")]
    UnknownError,
}

#[derive(Deserialize, Debug)]
pub struct ErrorMessage {
    pub error: String,
}

impl ErrorMessage {
    pub fn new(error: &str) -> ErrorMessage {
        ErrorMessage {
            error: error.to_string(),
        }
    }

    pub fn unknown() -> ErrorMessage {
        ErrorMessage {
            error: "Unknown error".to_string(),
        }
    }
}