1use std::{error::Error, fmt::Display};
2
3use crate::mochow::{api::*, client::*, config::*};
4
5#[derive(Debug)]
6pub enum SdkError {
7 RequestError(reqwest::Error),
9
10 RequestMiddlewareError(reqwest_middleware::Error),
12
13 ServiceError(ServiceError),
15
16 ParamsError(String),
18
19 OtherError(anyhow::Error),
21}
22
23impl Error for SdkError {}
24
25impl Display for SdkError {
26 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
27 match self {
28 SdkError::ServiceError(e) => write!(f, "service Error: {}", e),
29 SdkError::OtherError(e) => write!(f, "other error: {}. \ndetail {:?}", e, e),
30 SdkError::ParamsError(e) => write!(f, "params error: {}", e),
31 SdkError::RequestError(e) => {
32 write!(f, "request error: {}. \ndetail {:?}", e, e)
33 }
34 SdkError::RequestMiddlewareError(e) => {
35 write!(f, "request middleware error: {}. \ndetail {:?}", e, e)
36 }
37 }
38 }
39}
40
41impl From<reqwest::Error> for SdkError {
42 fn from(value: reqwest::Error) -> Self {
43 SdkError::OtherError(value.into())
44 }
45}
46
47impl From<reqwest_middleware::Error> for SdkError {
48 fn from(value: reqwest_middleware::Error) -> Self {
49 SdkError::RequestMiddlewareError(value)
50 }
51}
52
53impl From<ClientConfigurationBuilderError> for SdkError {
54 fn from(value: ClientConfigurationBuilderError) -> Self {
55 SdkError::OtherError(value.into())
56 }
57}
58
59impl From<MochowClientBuilderError> for SdkError {
60 fn from(value: MochowClientBuilderError) -> Self {
61 SdkError::OtherError(value.into())
62 }
63}
64
65impl From<CreateDatabaseArgsBuilderError> for SdkError {
66 fn from(value: CreateDatabaseArgsBuilderError) -> Self {
67 SdkError::OtherError(value.into())
68 }
69}
70
71impl From<DropDatabaseArgsBuilderError> for SdkError {
72 fn from(value: DropDatabaseArgsBuilderError) -> Self {
73 SdkError::OtherError(value.into())
74 }
75}
76
77impl From<ListDatabaseArgsBuilderError> for SdkError {
78 fn from(value: ListDatabaseArgsBuilderError) -> Self {
79 SdkError::OtherError(value.into())
80 }
81}
82
83impl From<DropTableArgsBuilderError> for SdkError {
84 fn from(value: DropTableArgsBuilderError) -> Self {
85 SdkError::OtherError(value.into())
86 }
87}
88
89impl From<ListTableArgsBuilderError> for SdkError {
90 fn from(value: ListTableArgsBuilderError) -> Self {
91 SdkError::OtherError(value.into())
92 }
93}
94
95impl From<DescriptTableArgsBuilderError> for SdkError {
96 fn from(value: DescriptTableArgsBuilderError) -> Self {
97 SdkError::OtherError(value.into())
98 }
99}
100
101impl From<StatsTableArgsBuilderError> for SdkError {
102 fn from(value: StatsTableArgsBuilderError) -> Self {
103 SdkError::OtherError(value.into())
104 }
105}
106
107impl From<AliasTableArgsBuilderError> for SdkError {
108 fn from(value: AliasTableArgsBuilderError) -> Self {
109 SdkError::OtherError(value.into())
110 }
111}
112
113impl From<UnaliasTableArgsBuilderError> for SdkError {
114 fn from(value: UnaliasTableArgsBuilderError) -> Self {
115 SdkError::OtherError(value.into())
116 }
117}
118
119impl From<DescriptIndexArgsBuilderError> for SdkError {
120 fn from(value: DescriptIndexArgsBuilderError) -> Self {
121 SdkError::OtherError(value.into())
122 }
123}
124
125impl From<RebuildIndexArgsBuilderError> for SdkError {
126 fn from(value: RebuildIndexArgsBuilderError) -> Self {
127 SdkError::OtherError(value.into())
128 }
129}
130
131impl From<DeleteIndexArgsBuilderError> for SdkError {
132 fn from(value: DeleteIndexArgsBuilderError) -> Self {
133 SdkError::OtherError(value.into())
134 }
135}