@@ -4,7 +4,7 @@ use std::collections::HashMap;
44use std:: hash:: Hash ;
55use std:: path:: { Path , PathBuf } ;
66
7- use comemo:: { evict , memoize , track , Track , Tracked , TrackedMut , Validate } ;
7+ use comemo:: { Track , Tracked , TrackedMut , Validate , evict , memoize , track } ;
88use serial_test:: serial;
99
1010macro_rules! test {
@@ -39,11 +39,7 @@ fn test_basic() {
3939
4040 #[ memoize]
4141 fn fib ( n : u32 ) -> u32 {
42- if n <= 2 {
43- 1
44- } else {
45- fib ( n - 1 ) + fib ( n - 2 )
46- }
42+ if n <= 2 { 1 } else { fib ( n - 1 ) + fib ( n - 2 ) }
4743 }
4844
4945 #[ memoize]
@@ -213,11 +209,7 @@ fn test_kinds() {
213209
214210 #[ memoize]
215211 fn unconditional ( tester : Tracky ) -> & ' static str {
216- if tester. by_value ( Heavy ( "HEAVY" . into ( ) ) ) > 10 {
217- "Long"
218- } else {
219- "Short"
220- }
212+ if tester. by_value ( Heavy ( "HEAVY" . into ( ) ) ) > 10 { "Long" } else { "Short" }
221213 }
222214
223215 let mut tester = Tester { data : "Hi" . to_string ( ) } ;
@@ -264,11 +256,7 @@ impl Tester {
264256
265257 /// Return value can borrow from both.
266258 fn double_ref < ' a > ( & ' a self , name : & ' a str ) -> & ' a str {
267- if name. len ( ) > self . data . len ( ) {
268- name
269- } else {
270- & self . data
271- }
259+ if name. len ( ) > self . data . len ( ) { name } else { & self . data }
272260 }
273261
274262 /// Normal method with owned argument.
@@ -371,40 +359,40 @@ impl<'a> Chain<'a> {
371359#[ track]
372360impl < ' a > Chain < ' a > {
373361 fn contains ( & self , value : u32 ) -> bool {
374- self . value == value || self . outer . map_or ( false , |outer| outer. contains ( value) )
362+ self . value == value || self . outer . is_some_and ( |outer| outer. contains ( value) )
375363 }
376364}
377365
378366/// Test mutable tracking.
379- #[ test]
380- #[ serial]
381- #[ rustfmt:: skip]
382- fn test_mutable ( ) {
383- #[ comemo:: memoize]
384- fn dump ( mut sink : TrackedMut < Emitter > ) {
385- sink. emit ( "a" ) ;
386- sink. emit ( "b" ) ;
387- let c = sink. len_or_ten ( ) . to_string ( ) ;
388- sink. emit ( & c) ;
389- }
390-
391- let mut emitter = Emitter ( vec ! [ ] ) ;
392- test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
393- test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
394- test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
395- test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
396- test ! ( hit: dump( emitter. track_mut( ) ) , ( ) ) ;
397- test ! ( hit: dump( emitter. track_mut( ) ) , ( ) ) ;
398- assert_eq ! ( emitter. 0 , [
399- "a" , "b" , "2" ,
400- "a" , "b" , "5" ,
401- "a" , "b" , "8" ,
402- "a" , "b" , "10" ,
403- "a" , "b" , "10" ,
404- "a" , "b" , "10" ,
405- ] )
367+ #[ test]
368+ #[ serial]
369+ #[ rustfmt:: skip]
370+ fn test_mutable ( ) {
371+ #[ comemo:: memoize]
372+ fn dump ( mut sink : TrackedMut < Emitter > ) {
373+ sink. emit ( "a" ) ;
374+ sink. emit ( "b" ) ;
375+ let c = sink. len_or_ten ( ) . to_string ( ) ;
376+ sink. emit ( & c) ;
406377 }
407378
379+ let mut emitter = Emitter ( vec ! [ ] ) ;
380+ test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
381+ test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
382+ test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
383+ test ! ( miss: dump( emitter. track_mut( ) ) , ( ) ) ;
384+ test ! ( hit: dump( emitter. track_mut( ) ) , ( ) ) ;
385+ test ! ( hit: dump( emitter. track_mut( ) ) , ( ) ) ;
386+ assert_eq ! ( emitter. 0 , [
387+ "a" , "b" , "2" ,
388+ "a" , "b" , "5" ,
389+ "a" , "b" , "8" ,
390+ "a" , "b" , "10" ,
391+ "a" , "b" , "10" ,
392+ "a" , "b" , "10" ,
393+ ] )
394+ }
395+
408396/// A tracked type with a mutable and an immutable method.
409397#[ derive( Clone ) ]
410398struct Emitter ( Vec < String > ) ;
0 commit comments