unsplash_api/endpoints/
common.rs

1use std::fmt;
2
3use http_api_client_endpoint::{
4    http::{Error as HttpError, StatusCode},
5    Body,
6};
7use serde_json::Error as SerdeJsonError;
8use url::ParseError as UrlParseError;
9
10use crate::objects::ResponseBodyErrJson;
11
12#[derive(Debug, Clone)]
13pub enum EndpointRet<T>
14where
15    T: fmt::Debug + Clone,
16{
17    Ok(T),
18    RateLimitIsReached,
19    Other((StatusCode, Result<ResponseBodyErrJson, Body>)),
20}
21
22#[derive(thiserror::Error, Debug)]
23pub enum EndpointError {
24    #[error("MakeRequestUrlFailed {0}")]
25    MakeRequestUrlFailed(UrlParseError),
26    #[error("MakeRequestFailed {0}")]
27    MakeRequestFailed(HttpError),
28    #[error("DeResponseBodyOkJsonFailed {0}")]
29    DeResponseBodyOkJsonFailed(SerdeJsonError),
30}