@@ -4,15 +4,15 @@ use crate::{
44 shm:: { self , SHM_DIR } ,
55} ;
66use aes_gcm:: {
7- aead:: { generic_array:: GenericArray , Aead } ,
87 Aes256Gcm , KeyInit , Nonce ,
8+ aead:: { Aead , generic_array:: GenericArray } ,
99} ;
1010use chrono:: Utc ;
1111use log:: { error, warn} ;
1212use memmap2:: { Mmap , MmapMut } ;
1313use named_lock:: NamedLock ;
14- use rand:: { seq:: SliceRandom , thread_rng } ;
15- use serde:: { de:: DeserializeOwned , Serialize } ;
14+ use rand:: seq:: SliceRandom ;
15+ use serde:: { Serialize , de:: DeserializeOwned } ;
1616use sha2:: { Digest , Sha224 } ;
1717use std:: {
1818 fs,
@@ -76,7 +76,7 @@ impl Shmap {
7676
7777 // Remove item if expired
7878 let not_found = match self . get_metadata ( key) ? {
79- Some ( metadata) => metadata. expiration . map_or ( false , |expiration| {
79+ Some ( metadata) => metadata. expiration . is_some_and ( |expiration| {
8080 let expired = Utc :: now ( ) . gt ( & expiration) ;
8181 if expired {
8282 warn ! ( "Key <{}> expired, removing" , & key) ;
@@ -102,7 +102,7 @@ impl Shmap {
102102 where
103103 T : DeserializeOwned ,
104104 {
105- match self . _get ( sanitized_key) ? {
105+ match self . get_internal ( sanitized_key) ? {
106106 Some ( bytes) => {
107107 let ( value, _) : ( T , usize ) =
108108 bincode:: serde:: decode_from_slice ( & bytes, bincode:: config:: standard ( ) ) ?;
@@ -115,10 +115,10 @@ impl Shmap {
115115 /// Get an item by its key, without deserialization, as bytes.
116116 pub fn get_raw ( & self , key : & str ) -> Result < Option < Vec < u8 > > , ShmapError > {
117117 let sanitized_key = sanitize_key ( key) ;
118- self . _get ( & sanitized_key)
118+ self . get_internal ( & sanitized_key)
119119 }
120120
121- fn _get ( & self , sanitized_key : & str ) -> Result < Option < Vec < u8 > > , ShmapError > {
121+ fn get_internal ( & self , sanitized_key : & str ) -> Result < Option < Vec < u8 > > , ShmapError > {
122122 let lock = NamedLock :: with_path (
123123 PathBuf :: from ( SHM_DIR ) . join (
124124 sanitized_key
@@ -148,7 +148,7 @@ impl Shmap {
148148 // If the value is empty, remove it and return None
149149 error ! ( "mmap file for item <{}> is empty, removing" , sanitized_key) ;
150150 drop ( guard) ;
151- let _ = self . _remove ( sanitized_key) ;
151+ let _ = self . remove_internal ( sanitized_key) ;
152152 return Ok ( None ) ;
153153 }
154154
@@ -199,7 +199,7 @@ impl Shmap {
199199 ttl : Duration ,
200200 ) -> Result < ( ) , ShmapError > {
201201 let sanitized_key = sanitize_key ( key) ;
202- self . _insert ( & sanitized_key, value) ?;
202+ self . insert_internal ( & sanitized_key, value) ?;
203203 self . insert_metadata ( Metadata :: new ( key, Some ( ttl) , self . cipher . is_some ( ) ) ?)
204204 }
205205
@@ -213,21 +213,21 @@ impl Shmap {
213213 T : Serialize ,
214214 {
215215 let bytes = bincode:: serde:: encode_to_vec ( & value, bincode:: config:: standard ( ) ) ?;
216- self . _insert ( sanitized_key, & bytes)
216+ self . insert_internal ( sanitized_key, & bytes)
217217 }
218218
219219 /// Insert a new item, without serialization.
220220 pub fn insert_raw ( & self , key : & str , value : & [ u8 ] ) -> Result < ( ) , ShmapError > {
221221 let sanitized_key = sanitize_key ( key) ;
222- self . _insert ( & sanitized_key, value)
222+ self . insert_internal ( & sanitized_key, value)
223223 }
224224
225- fn _insert ( & self , sanitized_key : & str , value : & [ u8 ] ) -> Result < ( ) , ShmapError > {
225+ fn insert_internal ( & self , sanitized_key : & str , value : & [ u8 ] ) -> Result < ( ) , ShmapError > {
226226 // If an encryption key was provided, encrypt the value
227227 let bytes = if let Some ( cipher) = & self . cipher {
228- let mut nonce: Vec < u8 > = ( 0 .. 12 ) . collect ( ) ;
229- nonce. shuffle ( & mut thread_rng ( ) ) ;
230- let mut ciphertext = cipher. encrypt ( Nonce :: from_slice ( nonce. as_slice ( ) ) , value) ?;
228+ let mut nonce: Vec < u8 > = vec ! [ 0 ; 12 ] ;
229+ nonce. shuffle ( & mut rand :: rng ( ) ) ;
230+ let mut ciphertext = cipher. encrypt ( Nonce :: from_slice ( & nonce) , value) ?;
231231 nonce. append ( & mut ciphertext) ;
232232 nonce
233233 } else {
@@ -258,7 +258,7 @@ impl Shmap {
258258 Ok ( ( ) ) => Ok ( ( ) ) ,
259259 Err ( e) => {
260260 drop ( guard) ;
261- let _ = self . _remove ( sanitized_key) ;
261+ let _ = self . remove_internal ( sanitized_key) ;
262262 Err ( e)
263263 }
264264 }
@@ -267,17 +267,17 @@ impl Shmap {
267267 /// Remove an item by its key.
268268 pub fn remove ( & self , key : & str ) -> Result < ( ) , ShmapError > {
269269 let sanitized_key = sanitize_key ( key) ;
270- self . _remove ( & sanitized_key) ?;
270+ self . remove_internal ( & sanitized_key) ?;
271271 self . remove_metadata ( key)
272272 }
273273
274274 fn remove_metadata ( & self , key : & str ) -> Result < ( ) , ShmapError > {
275275 let sanitize_metadata_key = sanitize_metadata_key ( key) ;
276- self . _remove ( & sanitize_metadata_key)
276+ self . remove_internal ( & sanitize_metadata_key)
277277 }
278278
279279 #[ allow( clippy:: unused_self) ]
280- fn _remove ( & self , sanitized_key : & str ) -> Result < ( ) , ShmapError > {
280+ fn remove_internal ( & self , sanitized_key : & str ) -> Result < ( ) , ShmapError > {
281281 if !sanitized_key. ends_with ( LOCK_SUFFIX ) {
282282 let lock = NamedLock :: with_path (
283283 PathBuf :: from ( SHM_DIR ) . join (
@@ -327,8 +327,8 @@ impl Shmap {
327327 if Utc :: now ( ) . gt ( & expiration) {
328328 // Expired, remove item and metadata
329329 warn ! ( "[clean] Item <{}> expired, removing" , & filename) ;
330- let _ = self . _remove ( & filename) ;
331- let _ = self . _remove ( & metadata_filename) ;
330+ let _ = self . remove_internal ( & filename) ;
331+ let _ = self . remove_internal ( & metadata_filename) ;
332332 } else {
333333 // Not expired, add to list
334334 keys. push ( metadata. key ) ;
@@ -343,7 +343,7 @@ impl Shmap {
343343 if duration_since_modified_time > Duration :: from_secs ( 5 ) {
344344 // Item exists, but metadata not found, remove item
345345 warn ! ( "[clean] Item <{}> metadata not found, removing" , & filename) ;
346- let _ = self . _remove ( & filename) ;
346+ let _ = self . remove_internal ( & filename) ;
347347 }
348348 }
349349 Err ( e) => {
@@ -364,7 +364,7 @@ impl Shmap {
364364 "[clean] Metadata <{}> exists, but item not found, removing metadata" ,
365365 & filename
366366 ) ;
367- let _ = self . _remove ( & filename) ;
367+ let _ = self . remove_internal ( & filename) ;
368368 }
369369 } else if filename. starts_with ( SHMAP_PREFIX ) && filename. ends_with ( LOCK_SUFFIX ) {
370370 let filename_path = dir_entry. path ( ) . to_string_lossy ( ) . to_string ( ) ;
@@ -377,7 +377,7 @@ impl Shmap {
377377 "[clean] Lock <{}> exists, but item not found, removing" ,
378378 & filename
379379 ) ;
380- let _ = self . _remove ( & filename) ;
380+ let _ = self . remove_internal ( & filename) ;
381381 }
382382 }
383383 }
@@ -398,8 +398,8 @@ fn sanitize_metadata_key(key: &str) -> String {
398398#[ cfg( test) ]
399399mod tests {
400400 use crate :: {
401- tests:: map:: { init_logger, rand_string} ,
402401 Shmap ,
402+ tests:: map:: { init_logger, rand_string} ,
403403 } ;
404404
405405 #[ test]
0 commit comments