@@ -89,27 +89,28 @@ impl Request {
8989 }
9090
9191 fn get_data_raw ( & self , key : & str , default : bool ) -> Result < Value , RvError > {
92- let field = self . match_path . as_ref ( ) . unwrap ( ) . get_field ( key) ;
93- if field. is_none ( ) {
92+ let Some ( match_path) = self . match_path . as_ref ( ) else {
93+ return Err ( RvError :: ErrRequestNotReady ) ;
94+ } ;
95+ let Some ( field) = match_path. get_field ( key) else {
9496 return Err ( RvError :: ErrRequestNoDataField ) ;
95- }
96- let field = field. unwrap ( ) ;
97+ } ;
9798
98- if self . data . is_some ( ) {
99- if let Some ( data ) = self . data . as_ref ( ) . unwrap ( ) . get ( key) {
100- if !field. check_data_type ( data ) {
99+ if let Some ( data ) = self . data . as_ref ( ) {
100+ if let Some ( value ) = data. get ( key) {
101+ if !field. check_data_type ( value ) {
101102 return Err ( RvError :: ErrRequestFieldInvalid ) ;
102103 }
103- return Ok ( data . clone ( ) ) ;
104+ return Ok ( value . clone ( ) ) ;
104105 }
105106 }
106107
107- if self . body . is_some ( ) {
108- if let Some ( data ) = self . body . as_ref ( ) . unwrap ( ) . get ( key) {
109- if !field. check_data_type ( data ) {
108+ if let Some ( body ) = self . body . as_ref ( ) {
109+ if let Some ( value ) = body. get ( key) {
110+ if !field. check_data_type ( value ) {
110111 return Err ( RvError :: ErrRequestFieldInvalid ) ;
111112 }
112- return Ok ( data . clone ( ) ) ;
113+ return Ok ( value . clone ( ) ) ;
113114 }
114115 }
115116
@@ -184,10 +185,12 @@ impl Request {
184185 }
185186
186187 pub fn get_field_default_or_zero ( & self , key : & str ) -> Result < Value , RvError > {
187- if self . match_path . is_none ( ) {
188+ let Some ( match_path ) = self . match_path . as_ref ( ) else {
188189 return Err ( RvError :: ErrRequestNotReady ) ;
189- }
190- let field = self . match_path . as_ref ( ) . unwrap ( ) . get_field ( key) . ok_or ( RvError :: ErrRequestNoDataField ) ?;
190+ } ;
191+ let Some ( field) = match_path. get_field ( key) else {
192+ return Err ( RvError :: ErrRequestNoDataField ) ;
193+ } ;
191194 field. get_default ( )
192195 }
193196
@@ -199,16 +202,16 @@ impl Request {
199202
200203 //TODO: the sensitive data is still in the memory. Need to totally resolve this in `serde_json` someday.
201204 pub fn clear_data ( & mut self , key : & str ) {
202- if self . data . is_some ( ) {
203- if let Some ( secret_str) = self . data . as_mut ( ) . unwrap ( ) . get_mut ( key) {
205+ if let Some ( data ) = self . data . as_mut ( ) {
206+ if let Some ( secret_str) = data. get_mut ( key) {
204207 if let Value :: String ( ref mut s) = * secret_str {
205208 "" . clone_into ( s) ;
206209 }
207210 }
208211 }
209212
210- if self . body . is_some ( ) {
211- if let Some ( secret_str) = self . body . as_mut ( ) . unwrap ( ) . get_mut ( key) {
213+ if let Some ( body ) = self . body . as_mut ( ) {
214+ if let Some ( secret_str) = body. get_mut ( key) {
212215 if let Value :: String ( ref mut s) = * secret_str {
213216 "" . clone_into ( s) ;
214217 }
@@ -217,34 +220,34 @@ impl Request {
217220 }
218221
219222 pub fn storage_list ( & self , prefix : & str ) -> Result < Vec < String > , RvError > {
220- if self . storage . is_none ( ) {
223+ let Some ( storage ) = self . storage . as_ref ( ) else {
221224 return Err ( RvError :: ErrRequestNotReady ) ;
222- }
225+ } ;
223226
224- self . storage . as_ref ( ) . unwrap ( ) . list ( prefix)
227+ storage. list ( prefix)
225228 }
226229
227230 pub fn storage_get ( & self , key : & str ) -> Result < Option < StorageEntry > , RvError > {
228- if self . storage . is_none ( ) {
231+ let Some ( storage ) = self . storage . as_ref ( ) else {
229232 return Err ( RvError :: ErrRequestNotReady ) ;
230- }
233+ } ;
231234
232- self . storage . as_ref ( ) . unwrap ( ) . get ( key)
235+ storage. get ( key)
233236 }
234237
235238 pub fn storage_put ( & self , entry : & StorageEntry ) -> Result < ( ) , RvError > {
236- if self . storage . is_none ( ) {
239+ let Some ( storage ) = self . storage . as_ref ( ) else {
237240 return Err ( RvError :: ErrRequestNotReady ) ;
238- }
241+ } ;
239242
240- self . storage . as_ref ( ) . unwrap ( ) . put ( entry)
243+ storage. put ( entry)
241244 }
242245
243246 pub fn storage_delete ( & self , key : & str ) -> Result < ( ) , RvError > {
244- if self . storage . is_none ( ) {
247+ let Some ( storage ) = self . storage . as_ref ( ) else {
245248 return Err ( RvError :: ErrRequestNotReady ) ;
246- }
249+ } ;
247250
248- self . storage . as_ref ( ) . unwrap ( ) . delete ( key)
251+ storage. delete ( key)
249252 }
250253}
0 commit comments