apple_search_ads/endpoints/
common.rs

1use core::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::api_error_response::ApiErrorResponse;
11
12//
13#[derive(Debug, Clone)]
14pub enum EndpointRet<T> {
15    Ok(T),
16    Other((StatusCode, Result<ApiErrorResponse, Body>)),
17}
18
19//
20#[derive(Debug)]
21pub enum EndpointError {
22    MakeRequestUrlFailed(UrlParseError),
23    SerRequestBodyJsonFailed(SerdeJsonError),
24    MakeRequestFailed(HttpError),
25    DeResponseBodyOkJsonFailed(SerdeJsonError),
26    Other(Box<dyn std::error::Error + Send + Sync + 'static>),
27}
28
29impl fmt::Display for EndpointError {
30    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
31        write!(f, "{self:?}")
32    }
33}
34
35impl std::error::Error for EndpointError {}