@@ -54,8 +54,7 @@ pub fn collect_sparse_grams_deque(content: &[u8], out: &mut [NGram]) -> usize {
5454 out[ w] = NGram :: from_rolling_hash ( bigram_hash, 2 ) ;
5555 w += 1 ;
5656
57- let v1 =
58- table[ content[ idx as usize - 1 ] as usize * 256 + content[ idx as usize ] as usize ] ;
57+ let v1 = table[ content[ idx as usize - 1 ] as usize * 256 + content[ idx as usize ] as usize ] ;
5958
6059 if let Some ( begin) = queue. front ( ) {
6160 if idx - begin. index + 1 >= MAX_SPARSE_GRAM_SIZE as u32 {
@@ -65,7 +64,8 @@ pub fn collect_sparse_grams_deque(content: &[u8], out: &mut [NGram]) -> usize {
6564 while let Some ( begin) = queue. back ( ) {
6665 let start = begin. index as usize - 1 ;
6766 let len = ( idx - begin. index + 2 ) as usize ;
68- let hash = end_hash. wrapping_sub ( prefix_hashes[ start & mask] . wrapping_mul ( POLY_POWERS [ len] ) ) ;
67+ let hash =
68+ end_hash. wrapping_sub ( prefix_hashes[ start & mask] . wrapping_mul ( POLY_POWERS [ len] ) ) ;
6969 out[ w] = NGram :: from_rolling_hash ( hash, len) ;
7070 w += 1 ;
7171 if begin. value == v1 {
@@ -115,8 +115,7 @@ pub fn collect_sparse_grams_scan(content: &[u8], out: &mut [NGram]) -> usize {
115115 . wrapping_sub ( prefix_hashes[ ( idx as usize - 1 ) & MASK ] . wrapping_mul ( POLY_POWERS [ 2 ] ) ) ;
116116 out[ w] = NGram :: from_rolling_hash ( bigram_hash, 2 ) ;
117117 w += 1 ;
118- let v1 =
119- table[ content[ idx as usize - 1 ] as usize * 256 + content[ idx as usize ] as usize ] ;
118+ let v1 = table[ content[ idx as usize - 1 ] as usize * 256 + content[ idx as usize ] as usize ] ;
120119 priorities[ idx as usize & MASK ] = v1;
121120 let mut running_min = u16:: MAX ;
122121 for d in 1 ..=( MAX_SPARSE_GRAM_SIZE as u32 - 2 ) {
@@ -129,7 +128,8 @@ pub fn collect_sparse_grams_scan(content: &[u8], out: &mut [NGram]) -> usize {
129128 running_min = v_p;
130129 let start = p. wrapping_sub ( 1 ) & MASK ;
131130 let len = d as usize + 2 ;
132- let hash = end_hash. wrapping_sub ( prefix_hashes[ start] . wrapping_mul ( POLY_POWERS [ len] ) ) ;
131+ let hash =
132+ end_hash. wrapping_sub ( prefix_hashes[ start] . wrapping_mul ( POLY_POWERS [ len] ) ) ;
133133 out[ w] = NGram :: from_rolling_hash ( hash, len) ;
134134 w += 1 ;
135135 if v_p <= v1 {
@@ -178,12 +178,13 @@ mod tests {
178178 break ;
179179 }
180180 let left = table[ content[ start] as usize * 256 + content[ start + 1 ] as usize ] ;
181- let right =
182- table [ content[ start + len - 2 ] as usize * 256 + content[ start + len - 1 ] as usize ] ;
181+ let right = table
182+ [ content[ start + len - 2 ] as usize * 256 + content[ start + len - 1 ] as usize ] ;
183183 let boundary = left. max ( right) ;
184184 // Inner bigrams: bytes [start+1,start+2], ..., [start+len-3,start+len-2]
185185 for k in 1 ..len - 2 {
186- let p = table[ content[ start + k] as usize * 256 + content[ start + k + 1 ] as usize ] ;
186+ let p =
187+ table[ content[ start + k] as usize * 256 + content[ start + k + 1 ] as usize ] ;
187188 if p <= boundary {
188189 continue ' outer;
189190 }
@@ -225,7 +226,10 @@ mod tests {
225226 let grams = collect_sparse_grams ( input) ;
226227 for gram in & grams {
227228 assert ! ( gram. len( ) >= 2 , "gram too short: {gram:?}" ) ;
228- assert ! ( gram. len( ) <= MAX_SPARSE_GRAM_SIZE , "gram too long: {gram:?}" ) ;
229+ assert ! (
230+ gram. len( ) <= MAX_SPARSE_GRAM_SIZE ,
231+ "gram too long: {gram:?}"
232+ ) ;
229233 }
230234 }
231235
@@ -309,14 +313,24 @@ mod tests {
309313 if !only_actual. is_empty ( ) || !only_expected. is_empty ( ) {
310314 panic ! (
311315 "mismatch on input len={}\n only in algorithm: {:?}\n only in brute force: {:?}" ,
312- input. len( ) , only_actual, only_expected
316+ input. len( ) ,
317+ only_actual,
318+ only_expected
313319 ) ;
314320 }
315321 }
316322
317323 #[ test]
318324 fn test_brute_force_small ( ) {
319- for input in [ b"" as & [ u8 ] , b"x" , b"ab" , b"abc" , b"abcd" , b"abcdefgh" , b"abcdefghi" ] {
325+ for input in [
326+ b"" as & [ u8 ] ,
327+ b"x" ,
328+ b"ab" ,
329+ b"abc" ,
330+ b"abcd" ,
331+ b"abcdefgh" ,
332+ b"abcdefghi" ,
333+ ] {
320334 assert_matches_brute_force ( input) ;
321335 }
322336 }
0 commit comments