File tree 3 files changed +75
-0
lines changed
modules/openapi-generator/src/main/resources/rust/reqwest
samples/client/petstore/rust/reqwest
3 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 1
1
use reqwest;
2
2
use serde_json;
3
+ use std::error;
4
+ use std::fmt;
3
5
4
6
#[derive(Debug, Clone)]
5
7
pub struct ResponseContent<T > {
@@ -16,6 +18,29 @@ pub enum Error<T> {
16
18
ResponseError(ResponseContent< T> ),
17
19
}
18
20
21
+ impl <T > fmt::Display for Error<T > {
22
+ fn fmt(&self, f: &mut fmt::Formatter< ' _>) -> fmt::Result {
23
+ let (module, e) = match self {
24
+ Error::Reqwest(e) => ("reqwest", e.to_string()),
25
+ Error::Serde(e) => ("serde", e.to_string()),
26
+ Error::Io(e) => ("IO", e.to_string()),
27
+ Error::ResponseError(e) => ("response", format!("status code {}", e.status)),
28
+ };
29
+ write!(f, "error in {}: {}", module, e)
30
+ }
31
+ }
32
+
33
+ impl <T: fmt::Debug> error::Error for Error<T> {
34
+ fn source(&self) -> Option<&(dyn error::Error + ' static)> {
35
+ Some(match self {
36
+ Error::Reqwest(e) => e,
37
+ Error::Serde(e) => e,
38
+ Error::Io(e) => e,
39
+ Error::ResponseError(_) => return None,
40
+ } )
41
+ }
42
+ }
43
+
19
44
impl <T > From<reqwest::Error > for Error<T > {
20
45
fn from(e: reqwest::Error) -> Self {
21
46
Error::Reqwest(e)
Original file line number Diff line number Diff line change 1
1
use reqwest;
2
2
use serde_json;
3
+ use std:: error;
4
+ use std:: fmt;
3
5
4
6
#[ derive( Debug , Clone ) ]
5
7
pub struct ResponseContent < T > {
@@ -16,6 +18,29 @@ pub enum Error<T> {
16
18
ResponseError ( ResponseContent < T > ) ,
17
19
}
18
20
21
+ impl < T > fmt:: Display for Error < T > {
22
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
23
+ let ( module, e) = match self {
24
+ Error :: Reqwest ( e) => ( "reqwest" , e. to_string ( ) ) ,
25
+ Error :: Serde ( e) => ( "serde" , e. to_string ( ) ) ,
26
+ Error :: Io ( e) => ( "IO" , e. to_string ( ) ) ,
27
+ Error :: ResponseError ( e) => ( "response" , format ! ( "status code {}" , e. status) ) ,
28
+ } ;
29
+ write ! ( f, "error in {}: {}" , module, e)
30
+ }
31
+ }
32
+
33
+ impl < T : fmt:: Debug > error:: Error for Error < T > {
34
+ fn source ( & self ) -> Option < & ( dyn error:: Error + ' static ) > {
35
+ Some ( match self {
36
+ Error :: Reqwest ( e) => e,
37
+ Error :: Serde ( e) => e,
38
+ Error :: Io ( e) => e,
39
+ Error :: ResponseError ( _) => return None ,
40
+ } )
41
+ }
42
+ }
43
+
19
44
impl < T > From < reqwest:: Error > for Error < T > {
20
45
fn from ( e : reqwest:: Error ) -> Self {
21
46
Error :: Reqwest ( e)
Original file line number Diff line number Diff line change 1
1
use reqwest;
2
2
use serde_json;
3
+ use std:: error;
4
+ use std:: fmt;
3
5
4
6
#[ derive( Debug , Clone ) ]
5
7
pub struct ResponseContent < T > {
@@ -16,6 +18,29 @@ pub enum Error<T> {
16
18
ResponseError ( ResponseContent < T > ) ,
17
19
}
18
20
21
+ impl < T > fmt:: Display for Error < T > {
22
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
23
+ let ( module, e) = match self {
24
+ Error :: Reqwest ( e) => ( "reqwest" , e. to_string ( ) ) ,
25
+ Error :: Serde ( e) => ( "serde" , e. to_string ( ) ) ,
26
+ Error :: Io ( e) => ( "IO" , e. to_string ( ) ) ,
27
+ Error :: ResponseError ( e) => ( "response" , format ! ( "status code {}" , e. status) ) ,
28
+ } ;
29
+ write ! ( f, "error in {}: {}" , module, e)
30
+ }
31
+ }
32
+
33
+ impl < T : fmt:: Debug > error:: Error for Error < T > {
34
+ fn source ( & self ) -> Option < & ( dyn error:: Error + ' static ) > {
35
+ Some ( match self {
36
+ Error :: Reqwest ( e) => e,
37
+ Error :: Serde ( e) => e,
38
+ Error :: Io ( e) => e,
39
+ Error :: ResponseError ( _) => return None ,
40
+ } )
41
+ }
42
+ }
43
+
19
44
impl < T > From < reqwest:: Error > for Error < T > {
20
45
fn from ( e : reqwest:: Error ) -> Self {
21
46
Error :: Reqwest ( e)
You can’t perform that action at this time.
0 commit comments