@@ -250,24 +250,11 @@ fn test_result_as_deref() {
250
250
let expected_result = Result :: Ok :: < & [ i32 ] , & u32 > ( [ 1 , 2 , 3 , 4 , 5 ] . as_slice ( ) ) ;
251
251
assert_eq ! ( ref_ok. as_deref( ) , expected_result) ;
252
252
253
- // &Result<T, E: Deref>::Err(T).as_deref_err() ->
254
- // Result<&T, &E::Deref::Target>::Err(&*E)
255
- let ref_err = & Result :: Err :: < u8 , & i32 > ( & 41 ) ;
256
- let expected_result = Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
257
- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
258
-
259
- let ref_err = & Result :: Err :: < u32 , String > ( String :: from ( "an error" ) ) ;
260
- let expected_result = Result :: Err :: < & u32 , & str > ( "an error" ) ;
261
- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
262
-
263
- let ref_err = & Result :: Err :: < u32 , Vec < i32 > > ( vec ! [ 5 , 4 , 3 , 2 , 1 ] ) ;
264
- let expected_result = Result :: Err :: < & u32 , & [ i32 ] > ( [ 5 , 4 , 3 , 2 , 1 ] . as_slice ( ) ) ;
265
- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
266
-
267
- // &Result<T: Deref, E: Deref>::Err(T).as_deref_err() ->
268
- // Result<&T, &E::Deref::Target>::Err(&*E)
269
- let ref_err = & Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
270
- let expected_result = Result :: Err :: < & u8 , & & i32 > ( & & 41 ) ;
253
+ // &Result<T: Deref, E>::Err(T).as_deref() ->
254
+ // Result<&T::Deref::Target, &E>::Err(&*E)
255
+ let val = 41 ;
256
+ let ref_err = & Result :: Err :: < & u8 , i32 > ( val) ;
257
+ let expected_result = Result :: Err :: < & u8 , & i32 > ( & val) ;
271
258
assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
272
259
273
260
let s = String :: from ( "an error" ) ;
@@ -279,46 +266,12 @@ fn test_result_as_deref() {
279
266
let ref_err = & Result :: Err :: < & u32 , Vec < i32 > > ( v. clone ( ) ) ;
280
267
let expected_result = Result :: Err :: < & u32 , & Vec < i32 > > ( & v) ;
281
268
assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
282
-
283
- // The following cases test calling `as_deref_*` with the wrong variant (i.e.
284
- // `as_deref()` with a `Result::Err()`, or `as_deref_err()` with a `Result::Ok()`.
285
- // While uncommon, these cases are supported to ensure that an `as_deref_*`
286
- // call can still be made even when one of the Result types does not implement
287
- // `Deref` (for example, std::io::Error).
288
-
289
- // &Result<T, E: Deref>::Ok(T).as_deref_err() ->
290
- // Result<&T, &E::Deref::Target>::Ok(&T)
291
- let ref_ok = & Result :: Ok :: < i32 , & u8 > ( 42 ) ;
292
- let expected_result = Result :: Ok :: < & i32 , & u8 > ( & 42 ) ;
293
- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
294
-
295
- let ref_ok = & Result :: Ok :: < & str , & u32 > ( "a result" ) ;
296
- let expected_result = Result :: Ok :: < & & str , & u32 > ( & "a result" ) ;
297
- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
298
-
299
- let ref_ok = & Result :: Ok :: < [ i32 ; 5 ] , & u32 > ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
300
- let expected_result = Result :: Ok :: < & [ i32 ; 5 ] , & u32 > ( & [ 1 , 2 , 3 , 4 , 5 ] ) ;
301
- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
302
-
303
- // &Result<T: Deref, E>::Err(E).as_deref() ->
304
- // Result<&T::Deref::Target, &E>::Err(&E)
305
- let ref_err = & Result :: Err :: < & u8 , i32 > ( 41 ) ;
306
- let expected_result = Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
307
- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
308
-
309
- let ref_err = & Result :: Err :: < & u32 , & str > ( "an error" ) ;
310
- let expected_result = Result :: Err :: < & u32 , & & str > ( & "an error" ) ;
311
- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
312
-
313
- let ref_err = & Result :: Err :: < & u32 , [ i32 ; 5 ] > ( [ 5 , 4 , 3 , 2 , 1 ] ) ;
314
- let expected_result = Result :: Err :: < & u32 , & [ i32 ; 5 ] > ( & [ 5 , 4 , 3 , 2 , 1 ] ) ;
315
- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
316
269
}
317
270
318
271
#[ test]
319
272
fn test_result_as_deref_mut ( ) {
320
- // &mut Result<T: Deref , E>::Ok(T).as_deref_mut() ->
321
- // Result<&mut T::Deref ::Target, &mut E>::Ok(&mut *T)
273
+ // &mut Result<T: DerefMut , E>::Ok(T).as_deref_mut() ->
274
+ // Result<&mut T::DerefMut ::Target, &mut E>::Ok(&mut *T)
322
275
let mut val = 42 ;
323
276
let mut expected_val = 42 ;
324
277
let mut_ok = & mut Result :: Ok :: < & mut i32 , u8 > ( & mut val) ;
@@ -335,26 +288,8 @@ fn test_result_as_deref_mut() {
335
288
let expected_result = Result :: Ok :: < & mut [ i32 ] , & mut u32 > ( expected_vec. as_mut_slice ( ) ) ;
336
289
assert_eq ! ( mut_ok. as_deref_mut( ) , expected_result) ;
337
290
338
- // &mut Result<T, E: Deref>::Err(T).as_deref_mut_err() ->
339
- // Result<&mut T, &mut E::Deref::Target>::Err(&mut *E)
340
- let mut val = 41 ;
341
- let mut expected_val = 41 ;
342
- let mut_err = & mut Result :: Err :: < u8 , & mut i32 > ( & mut val) ;
343
- let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut expected_val) ;
344
- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
345
-
346
- let mut expected_string = String :: from ( "an error" ) ;
347
- let mut_err = & mut Result :: Err :: < u32 , String > ( expected_string. clone ( ) ) ;
348
- let expected_result = Result :: Err :: < & mut u32 , & mut str > ( expected_string. deref_mut ( ) ) ;
349
- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
350
-
351
- let mut expected_vec = vec ! [ 5 , 4 , 3 , 2 , 1 ] ;
352
- let mut_err = & mut Result :: Err :: < u32 , Vec < i32 > > ( expected_vec. clone ( ) ) ;
353
- let expected_result = Result :: Err :: < & mut u32 , & mut [ i32 ] > ( expected_vec. as_mut_slice ( ) ) ;
354
- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
355
-
356
- // &mut Result<T: Deref, E: Deref>::Err(T).as_deref_mut_err() ->
357
- // Result<&mut T, &mut E::Deref::Target>::Err(&mut *E)
291
+ // &mut Result<T: DerefMut, E>::Err(T).as_deref_mut() ->
292
+ // Result<&mut T, &mut E>::Err(&mut *E)
358
293
let mut val = 41 ;
359
294
let mut_err = & mut Result :: Err :: < & mut u8 , i32 > ( val) ;
360
295
let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut val) ;
@@ -369,48 +304,4 @@ fn test_result_as_deref_mut() {
369
304
let mut_err = & mut Result :: Err :: < & mut u32 , Vec < i32 > > ( expected_vec. clone ( ) ) ;
370
305
let expected_result = Result :: Err :: < & mut u32 , & mut Vec < i32 > > ( & mut expected_vec) ;
371
306
assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
372
-
373
- // The following cases test calling `as_deref_mut_*` with the wrong variant (i.e.
374
- // `as_deref_mut()` with a `Result::Err()`, or `as_deref_mut_err()` with a `Result::Ok()`.
375
- // While uncommon, these cases are supported to ensure that an `as_deref_mut_*`
376
- // call can still be made even when one of the Result types does not implement
377
- // `Deref` (for example, std::io::Error).
378
-
379
- // &mut Result<T, E: Deref>::Ok(T).as_deref_mut_err() ->
380
- // Result<&mut T, &mut E::Deref::Target>::Ok(&mut T)
381
- let mut expected_val = 42 ;
382
- let mut_ok = & mut Result :: Ok :: < i32 , & mut u8 > ( expected_val. clone ( ) ) ;
383
- let expected_result = Result :: Ok :: < & mut i32 , & mut u8 > ( & mut expected_val) ;
384
- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
385
-
386
- let string = String :: from ( "a result" ) ;
387
- let expected_string = string. clone ( ) ;
388
- let mut ref_str = expected_string. as_ref ( ) ;
389
- let mut_ok = & mut Result :: Ok :: < & str , & mut u32 > ( string. as_str ( ) ) ;
390
- let expected_result = Result :: Ok :: < & mut & str , & mut u32 > ( & mut ref_str) ;
391
- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
392
-
393
- let mut expected_arr = [ 1 , 2 , 3 , 4 , 5 ] ;
394
- let mut_ok = & mut Result :: Ok :: < [ i32 ; 5 ] , & mut u32 > ( expected_arr. clone ( ) ) ;
395
- let expected_result = Result :: Ok :: < & mut [ i32 ; 5 ] , & mut u32 > ( & mut expected_arr) ;
396
- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
397
-
398
- // &mut Result<T: Deref, E>::Err(E).as_deref_mut() ->
399
- // Result<&mut T::Deref::Target, &mut E>::Err(&mut E)
400
- let mut expected_val = 41 ;
401
- let mut_err = & mut Result :: Err :: < & mut u8 , i32 > ( expected_val. clone ( ) ) ;
402
- let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut expected_val) ;
403
- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
404
-
405
- let string = String :: from ( "an error" ) ;
406
- let expected_string = string. clone ( ) ;
407
- let mut ref_str = expected_string. as_ref ( ) ;
408
- let mut_err = & mut Result :: Err :: < & mut u32 , & str > ( string. as_str ( ) ) ;
409
- let expected_result = Result :: Err :: < & mut u32 , & mut & str > ( & mut ref_str) ;
410
- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
411
-
412
- let mut expected_arr = [ 5 , 4 , 3 , 2 , 1 ] ;
413
- let mut_err = & mut Result :: Err :: < & mut u32 , [ i32 ; 5 ] > ( expected_arr. clone ( ) ) ;
414
- let expected_result = Result :: Err :: < & mut u32 , & mut [ i32 ; 5 ] > ( & mut expected_arr) ;
415
- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
416
307
}
0 commit comments