@@ -166,16 +166,9 @@ macro_rules! impl_batch_operations {
166
166
fn del_last_index( & mut self , keychain: KeychainKind ) -> Result <Option <u32 >, Error > {
167
167
let key = MapKey :: LastIndex ( keychain) . as_map_key( ) ;
168
168
let res = self . remove( key) ;
169
- let res = $process_delete!( res) ;
170
-
171
- match res {
172
- None => Ok ( None ) ,
173
- Some ( b) => {
174
- let array: [ u8 ; 4 ] = b. as_ref( ) . try_into( ) . map_err( |_| Error :: InvalidU32Bytes ( b. to_vec( ) ) ) ?;
175
- let val = u32 :: from_be_bytes( array) ;
176
- Ok ( Some ( val) )
177
- }
178
- }
169
+ $process_delete!( res)
170
+ . map( ivec_to_u32)
171
+ . transpose( )
179
172
}
180
173
181
174
fn del_sync_time( & mut self ) -> Result <Option <SyncTime >, Error > {
@@ -357,16 +350,7 @@ impl Database for Tree {
357
350
358
351
fn get_last_index ( & self , keychain : KeychainKind ) -> Result < Option < u32 > , Error > {
359
352
let key = MapKey :: LastIndex ( keychain) . as_map_key ( ) ;
360
- self . get ( key) ?
361
- . map ( |b| -> Result < _ , Error > {
362
- let array: [ u8 ; 4 ] = b
363
- . as_ref ( )
364
- . try_into ( )
365
- . map_err ( |_| Error :: InvalidU32Bytes ( b. to_vec ( ) ) ) ?;
366
- let val = u32:: from_be_bytes ( array) ;
367
- Ok ( val)
368
- } )
369
- . transpose ( )
353
+ self . get ( key) ?. map ( ivec_to_u32) . transpose ( )
370
354
}
371
355
372
356
fn get_sync_time ( & self ) -> Result < Option < SyncTime > , Error > {
@@ -393,17 +377,19 @@ impl Database for Tree {
393
377
394
378
Some ( new. to_be_bytes ( ) . to_vec ( ) )
395
379
} ) ?
396
- . map_or ( Ok ( 0 ) , |b| -> Result < _ , Error > {
397
- let array: [ u8 ; 4 ] = b
398
- . as_ref ( )
399
- . try_into ( )
400
- . map_err ( |_| Error :: InvalidU32Bytes ( b. to_vec ( ) ) ) ?;
401
- let val = u32:: from_be_bytes ( array) ;
402
- Ok ( val)
403
- } )
380
+ . map_or ( Ok ( 0 ) , ivec_to_u32)
404
381
}
405
382
}
406
383
384
+ fn ivec_to_u32 ( b : sled:: IVec ) -> Result < u32 , Error > {
385
+ let array: [ u8 ; 4 ] = b
386
+ . as_ref ( )
387
+ . try_into ( )
388
+ . map_err ( |_| Error :: InvalidU32Bytes ( b. to_vec ( ) ) ) ?;
389
+ let val = u32:: from_be_bytes ( array) ;
390
+ Ok ( val)
391
+ }
392
+
407
393
impl BatchDatabase for Tree {
408
394
type Batch = sled:: Batch ;
409
395
0 commit comments