fioapi 0.3.1

Async Rust client for the Fio banka REST API
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum FioError {
    #[error("invalid token length: expected {expected} characters, got {actual}")]
    InvalidTokenLength { expected: usize, actual: usize },

    #[error("invalid date range: start {start} must be before or equal to end {end}")]
    InvalidDateRange {
        start: chrono::NaiveDate,
        end: chrono::NaiveDate,
    },

    #[error("invalid parameter: {0}")]
    InvalidParameter(&'static str),

    #[error("http error: {0}")]
    Http(#[from] reqwest::Error),

    #[error("unexpected http status: {0}")]
    Status(reqwest::StatusCode),

    #[error("invalid or unexpected response format")]
    InvalidResponse,

    #[error("api rejected request: {0}")]
    Api(#[from] ApiError),
}

#[derive(Debug, Error)]
pub enum ApiError {
    #[error("invalid request (404)")]
    InvalidRequest,

    #[error("time limit exceeded (409)")]
    TimeLimit,

    #[error("too many items (413)")]
    TooManyItems,

    #[error("not authorized (422)")]
    Authorization,

    #[error("invalid token (500)")]
    InvalidToken,

    #[error("unexpected status {0}")]
    UnexpectedStatus(reqwest::StatusCode),
}