twitter_api_v1/endpoints/
common.rs

1use reqwest::{Error as ReqwestError, StatusCode};
2use reqwest_oauth1::Error as ReqwestOauth1Error;
3use serde_json::Error as SerdeJsonError;
4
5use crate::objects::ResponseBodyErrJson;
6
7//
8#[derive(Debug, Clone)]
9#[non_exhaustive]
10pub enum EndpointRet<T> {
11    Ok(T),
12    Other((StatusCode, Result<ResponseBodyErrJson, Vec<u8>>)),
13}
14
15//
16#[derive(Debug)]
17pub enum EndpointError {
18    ValidateFailed(String),
19    RespondFailed(ReqwestOauth1Error),
20    ReadResponseBodyFailed(ReqwestError),
21    DeResponseBodyOkJsonFailed(SerdeJsonError),
22    //
23    DeV2ResponseBodyOkJsonFailed(SerdeJsonError),
24    ConvertV2ResponseBodyOkJsonFailed(String),
25    //
26    #[cfg(feature = "with_tokio_fs")]
27    GetFileInfoFailed(std::io::Error),
28    #[cfg(feature = "with_tokio_fs")]
29    OpenFileFailed(std::io::Error),
30}
31impl core::fmt::Display for EndpointError {
32    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
33        write!(f, "{self:?}")
34    }
35}
36impl std::error::Error for EndpointError {}