File tree 1 file changed +11
-0
lines changed
1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -1447,6 +1447,17 @@ mod tests {
1447
1447
assert_eq ! ( cache. get_or_insert( "lemon" , || "red" ) , & "orange" ) ;
1448
1448
}
1449
1449
1450
+ #[ test]
1451
+ fn test_try_get_or_insert ( ) {
1452
+ let mut cache = LruCache :: new ( NonZeroUsize :: new ( 2 ) . unwrap ( ) ) ;
1453
+
1454
+ assert_eq ! ( cache. try_get_or_insert:: <_, & str >( "apple" , || Ok ( "red" ) ) , Ok ( & "red" ) ) ;
1455
+ assert_eq ! ( cache. try_get_or_insert:: <_, & str >( "apple" , || Err ( "failed" ) ) , Ok ( & "red" ) ) ;
1456
+ assert_eq ! ( cache. try_get_or_insert:: <_, & str >( "banana" , || Ok ( "orange" ) ) , Ok ( & "orange" ) ) ;
1457
+ assert_eq ! ( cache. try_get_or_insert:: <_, & str >( "lemon" , || Err ( "failed" ) ) , Err ( "failed" ) ) ;
1458
+ assert_eq ! ( cache. try_get_or_insert:: <_, & str >( "banana" , || Err ( "failed" ) ) , Ok ( & "orange" ) ) ;
1459
+ }
1460
+
1450
1461
#[ test]
1451
1462
fn test_put_and_get_or_insert_mut ( ) {
1452
1463
let mut cache = LruCache :: new ( NonZeroUsize :: new ( 2 ) . unwrap ( ) ) ;
You can’t perform that action at this time.
0 commit comments