File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 71
71
}
72
72
}
73
73
74
+ impl < T > Status < T , Error > for Result < T , Error > {
75
+ /// Wrap the error value with an additional status code.
76
+ ///
77
+ /// # Panics
78
+ ///
79
+ /// Panics if [`Status`][status] is not a valid [`StatusCode`][statuscode].
80
+ ///
81
+ /// [status]: crate::Status
82
+ /// [statuscode]: crate::StatusCode
83
+ fn status < S > ( self , status : S ) -> Result < T , Error >
84
+ where
85
+ S : TryInto < StatusCode > ,
86
+ S :: Error : Debug ,
87
+ {
88
+ self . map_err ( |mut error| {
89
+ error. set_status ( status) ;
90
+ error
91
+ } )
92
+ }
93
+
94
+ /// Wrap the error value with an additional status code that is evaluated
95
+ /// lazily only once an error does occur.
96
+ ///
97
+ /// # Panics
98
+ ///
99
+ /// Panics if [`Status`][status] is not a valid [`StatusCode`][statuscode].
100
+ ///
101
+ /// [status]: crate::Status
102
+ /// [statuscode]: crate::StatusCode
103
+ fn with_status < S , F > ( self , f : F ) -> Result < T , Error >
104
+ where
105
+ S : TryInto < StatusCode > ,
106
+ S :: Error : Debug ,
107
+ F : FnOnce ( ) -> S ,
108
+ {
109
+ self . map_err ( |mut error| {
110
+ error. set_status ( f ( ) ) ;
111
+ error
112
+ } )
113
+ }
114
+ }
115
+
74
116
impl < T > Status < T , Infallible > for Option < T > {
75
117
/// Wrap the error value with an additional status code.
76
118
///
You can’t perform that action at this time.
0 commit comments