Skip to content

Commit e4c9919

Browse files
committed
add private function ivcec_to_u32 in keyvalue
1 parent a0acb03 commit e4c9919

File tree

1 file changed

+14
-28
lines changed

1 file changed

+14
-28
lines changed

src/database/keyvalue.rs

+14-28
Original file line numberDiff line numberDiff line change
@@ -166,16 +166,9 @@ macro_rules! impl_batch_operations {
166166
fn del_last_index(&mut self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
167167
let key = MapKey::LastIndex(keychain).as_map_key();
168168
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()
179172
}
180173

181174
fn del_sync_time(&mut self) -> Result<Option<SyncTime>, Error> {
@@ -357,16 +350,7 @@ impl Database for Tree {
357350

358351
fn get_last_index(&self, keychain: KeychainKind) -> Result<Option<u32>, Error> {
359352
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()
370354
}
371355

372356
fn get_sync_time(&self) -> Result<Option<SyncTime>, Error> {
@@ -393,17 +377,19 @@ impl Database for Tree {
393377

394378
Some(new.to_be_bytes().to_vec())
395379
})?
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)
404381
}
405382
}
406383

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+
407393
impl BatchDatabase for Tree {
408394
type Batch = sled::Batch;
409395

0 commit comments

Comments
 (0)