@@ -39,11 +39,10 @@ impl FrecencyTracker {
39
39
let db = env. create_database ( & mut wtxn, None ) . unwrap ( ) ;
40
40
41
41
let access_thresholds = [
42
- ( 1. , 1000 * 60 * 2 ) , // 2 minutes
43
- ( 0.5 , 1000 * 60 * 5 ) , // 5 minutes
44
- ( 0.2 , 1000 * 60 * 30 ) , // 2 hours
45
- ( 0.1 , 1000 * 60 * 60 * 24 ) , // 1 day
46
- ( 0.05 , 1000 * 60 * 60 * 24 * 7 ) , // 1 week
42
+ ( 1. , 1000 * 60 * 2 ) , // 2 minutes
43
+ ( 0.5 , 1000 * 60 * 60 ) , // 1 hour
44
+ ( 0.2 , 1000 * 60 * 60 * 24 ) , // 1 day
45
+ ( 0.1 , 1000 * 60 * 60 * 24 * 7 ) , // 1 week
47
46
]
48
47
. to_vec ( ) ;
49
48
@@ -73,7 +72,7 @@ impl FrecencyTracker {
73
72
74
73
pub fn access ( & mut self , item : & LspItem ) -> Result < ( ) , heed:: Error > {
75
74
let mut wtxn = self . env . write_txn ( ) ?;
76
- let mut accesses = self . get_accesses ( item) . unwrap_or_else ( Vec :: new ) ;
75
+ let mut accesses = self . get_accesses ( item) . unwrap_or_default ( ) ;
77
76
accesses. push ( self . get_now ( ) ) ;
78
77
self . db
79
78
. put ( & mut wtxn, & CompletionItemKey :: from ( item) , & accesses) ?;
@@ -82,18 +81,18 @@ impl FrecencyTracker {
82
81
}
83
82
84
83
pub fn get_score ( & self , item : & LspItem ) -> i64 {
85
- let accesses = self . get_accesses ( item) . unwrap_or_else ( Vec :: new ) ;
84
+ let accesses = self . get_accesses ( item) . unwrap_or_default ( ) ;
86
85
let now = self . get_now ( ) ;
87
86
let mut score = 0.0 ;
88
87
' outer: for access in & accesses {
89
88
let duration_since = now - access;
90
89
for ( rank, threshold_duration_since) in & self . access_thresholds {
91
90
if duration_since < * threshold_duration_since {
92
91
score += rank;
92
+ continue ' outer;
93
93
}
94
- continue ' outer;
95
94
}
96
95
}
97
- ( score * accesses . len ( ) as f64 ) . min ( 4. ) as i64
96
+ score. min ( 4. ) as i64
98
97
}
99
98
}
0 commit comments