@@ -158,7 +158,7 @@ pub fn xy2h<T: Unsigned>(x: T, y: T, order: u8) -> <T as Unsigned>::Key {
158
158
200 , 7 , 196 , 214 , 87 , 146 , 145 , 76 , 13 , 194 , 67 , 213 , 148 , 19 , 208 , 143 , 14 , 193 , 128 ,
159
159
] ;
160
160
161
- let coor_bits = ( core :: mem :: size_of :: < T > ( ) << 3 ) as u32 ;
161
+ let coor_bits = ( size_of :: < T > ( ) << 3 ) as u32 ;
162
162
let useless_bits = ( x | y) . leading_zeros ( ) & !1 ;
163
163
let lowest_order = ( coor_bits - useless_bits) as u8 + ( order & 1 ) ;
164
164
@@ -173,7 +173,7 @@ pub fn xy2h<T: Unsigned>(x: T, y: T, order: u8) -> <T as Unsigned>::Key {
173
173
let index = ( x_in | y_in | state. into ( ) ) . as_usize ( ) ;
174
174
175
175
let r = LUT_3 [ index] ;
176
- state = r & 0b11000000 ;
176
+ state = r & 0b1100_0000 ;
177
177
let r: T :: Key = r. into ( ) ;
178
178
179
179
let mut hhh: T :: Key = r & T :: SIXTY_THREE ;
@@ -229,7 +229,7 @@ pub fn h2xy<T: Unsigned>(h: <T as Unsigned>::Key, order: u8) -> (T, T) {
229
229
169 , 232 , 224 , 97 , 34 , 106 , 107 , 227 , 219 , 147 , 146 , 26 , 153 , 216 , 208 , 81 , 137 , 200 , 192 ,
230
230
65 , 2 , 74 , 75 , 195 , 68 , 5 , 13 , 140 , 20 , 92 , 93 , 213 , 22 , 94 , 95 , 215 , 143 , 206 , 198 , 71 ,
231
231
] ;
232
- let coor_bits = ( core :: mem :: size_of :: < T > ( ) << 3 ) as u8 ;
232
+ let coor_bits = ( size_of :: < T > ( ) << 3 ) as u8 ;
233
233
let useless_bits = ( h. leading_zeros ( ) >> 1 ) as u8 & !1 ;
234
234
let lowest_order = coor_bits - useless_bits + ( order & 1 ) ;
235
235
@@ -245,7 +245,7 @@ pub fn h2xy<T: Unsigned>(h: <T as Unsigned>::Key, order: u8) -> (T, T) {
245
245
let h_in: u8 = h_in. as_u8 ( ) ;
246
246
247
247
let r: u8 = LUT_3_REV [ state as usize | h_in as usize ] ;
248
- state = r & 0b11000000 ;
248
+ state = r & 0b1100_0000 ;
249
249
250
250
let xxx: T = r. into ( ) ;
251
251
let xxx: T = xxx >> 3i8 ;
@@ -303,24 +303,24 @@ mod tests {
303
303
let mut lut_3: [ u8 ; 256 ] = [ 0 ; 256 ] ;
304
304
for input in 0 ..=255 {
305
305
//for input in 4..=4 {
306
- let mut state: u8 = ( input & 0b11000000 ) >> 4 ;
306
+ let mut state: u8 = ( input & 0b1100_0000 ) >> 4 ;
307
307
let mut result: u8 = 0 ;
308
- let mut x_mask: u8 = 0b00100000 ;
309
- let mut y_mask: u8 = 0b00000100 ;
308
+ let mut x_mask: u8 = 0b0010_0000 ;
309
+ let mut y_mask: u8 = 0b0000_0100 ;
310
310
for i in 0 ..3 {
311
311
let idx = state | ( input & x_mask) >> ( 4 - i) | ( input & y_mask) >> ( 2 - i) ;
312
312
let r = LUT_SXY2SH [ idx as usize ] ;
313
313
// Override State
314
314
state = r & 0b1100 ;
315
- result = ( result & 0b00111111 ) | ( state << 4 ) ;
315
+ result = ( result & 0b0011_1111 ) | ( state << 4 ) ;
316
316
// Dx Dy
317
- result = ( result & !( 0b00110000 >> ( i * 2 ) ) ) | ( ( r & 0b0011 ) << ( ( 2 - i) * 2 ) ) ;
317
+ result = ( result & !( 0b0011_0000 >> ( i * 2 ) ) ) | ( ( r & 0b0011 ) << ( ( 2 - i) * 2 ) ) ;
318
318
x_mask >>= 1 ;
319
319
y_mask >>= 1 ;
320
320
}
321
321
lut_3[ input as usize ] = result;
322
322
}
323
- println ! ( "{:?}" , lut_3 ) ;
323
+ println ! ( "{lut_3 :?}" ) ;
324
324
}
325
325
326
326
#[ test]
@@ -329,9 +329,9 @@ mod tests {
329
329
let mut lut_3: [ u8 ; 256 ] = [ 0 ; 256 ] ;
330
330
for input in 0 ..=255 {
331
331
//for input in 4..=4 {
332
- let mut state: u8 = ( input & 0b11000000 ) >> 6 ;
332
+ let mut state: u8 = ( input & 0b1100_0000 ) >> 6 ;
333
333
let mut result: u8 = 0 ;
334
- let mut h_mask: u8 = 0b00110000 ;
334
+ let mut h_mask: u8 = 0b0011_0000 ;
335
335
for i in 0 ..3 {
336
336
let idx = ( state << 2 ) | ( input & h_mask) >> ( 4 - ( i * 2 ) ) ;
337
337
let r = LUT_SH2SXY [ idx as usize ] ;
@@ -340,14 +340,14 @@ mod tests {
340
340
let x = ( r & 0b10 ) >> 1 ;
341
341
let y = r & 0b1 ;
342
342
// Set state
343
- result = ( result & 0b00111111 ) | ( state << 6 ) ;
344
- result = ( result & !( 0b00100000 >> i) ) | ( x << ( 5 - i) ) ;
345
- result = ( result & !( 0b00000100 >> i) ) | ( y << ( 2 - i) ) ;
343
+ result = ( result & 0b0011_1111 ) | ( state << 6 ) ;
344
+ result = ( result & !( 0b0010_0000 >> i) ) | ( x << ( 5 - i) ) ;
345
+ result = ( result & !( 0b0000_0100 >> i) ) | ( y << ( 2 - i) ) ;
346
346
h_mask >>= 2 ;
347
347
}
348
348
lut_3[ input as usize ] = result;
349
349
}
350
- println ! ( "{:?}" , lut_3 ) ;
350
+ println ! ( "{lut_3 :?}" ) ;
351
351
}
352
352
353
353
#[ test]
@@ -430,6 +430,7 @@ mod tests {
430
430
}
431
431
}
432
432
433
+ #[ allow( clippy:: cast_precision_loss, clippy:: needless_range_loop) ]
433
434
fn draw_hilbert_curve ( iteration : u32 ) -> image:: ImageBuffer < image:: Rgb < u8 > , Vec < u8 > > {
434
435
let size: usize = 256 ;
435
436
let border = 32 / iteration;
@@ -439,10 +440,10 @@ mod tests {
439
440
let mut points: Vec < ( u32 , u32 ) > = vec ! [ ( 0 , 0 ) ; 2usize . pow( iteration * 2 ) ] ;
440
441
for i in 0 ..2usize . pow ( iteration * 2 ) {
441
442
let ( mut x, mut y) = h2xy ( i as u64 , iteration as u8 ) ;
442
- let step = ( size as u32 - border * 2 ) as f64 / ( 2usize . pow ( iteration) as f64 - 1.0 ) ;
443
- x = ( x as f64 * step) as u32 + border;
444
- y = ( y as f64 * step) as u32 + border;
445
- points[ i] = ( x, y)
443
+ let step = f64 :: from ( size as u32 - border * 2 ) / ( 2usize . pow ( iteration) as f64 - 1.0 ) ;
444
+ x = ( f64:: from ( x ) * step) as u32 + border;
445
+ y = ( f64:: from ( y ) * step) as u32 + border;
446
+ points[ i] = ( x, y) ;
446
447
}
447
448
448
449
let mut prev = ( 0 , 0 ) ;
@@ -457,25 +458,21 @@ mod tests {
457
458
let pixel = imgbuf. get_pixel_mut ( prev. 0 , prev. 1 ) ;
458
459
* pixel = white;
459
460
prev. 0 += 1 ;
460
- continue ;
461
461
}
462
462
while prev. 0 > * x {
463
463
let pixel = imgbuf. get_pixel_mut ( prev. 0 , prev. 1 ) ;
464
464
* pixel = white;
465
465
prev. 0 -= 1 ;
466
- continue ;
467
466
}
468
467
while prev. 1 < * y {
469
468
let pixel = imgbuf. get_pixel_mut ( prev. 0 , prev. 1 ) ;
470
469
* pixel = white;
471
470
prev. 1 += 1 ;
472
- continue ;
473
471
}
474
472
while prev. 1 > * y {
475
473
let pixel = imgbuf. get_pixel_mut ( prev. 0 , prev. 1 ) ;
476
474
* pixel = white;
477
475
prev. 1 -= 1 ;
478
- continue ;
479
476
}
480
477
}
481
478
imgbuf
@@ -486,7 +483,7 @@ mod tests {
486
483
fn write_image ( ) {
487
484
for i in 1 ..7 {
488
485
let imgbuf = draw_hilbert_curve ( i) ;
489
- imgbuf. save ( format ! ( "doc/h{}.png" , i ) ) . unwrap ( ) ;
486
+ imgbuf. save ( format ! ( "doc/h{i }.png" ) ) . unwrap ( ) ;
490
487
}
491
488
}
492
489
}
0 commit comments