@@ -348,13 +348,8 @@ impl Rdict {
348348 /// Use list of keys for batch get.
349349 fn __getitem__ < ' py > ( & self , key : & Bound < PyAny > , py : Python < ' py > ) -> PyResult < Bound < ' py , PyAny > > {
350350 match self . get ( key, None , None , py) {
351- Ok ( v) => {
352- if v. is_none ( ) {
353- Err ( PyKeyError :: new_err ( format ! ( "key {key} not found" ) ) )
354- } else {
355- Ok ( v)
356- }
357- }
351+ Ok ( None ) => Err ( PyKeyError :: new_err ( format ! ( "key {key} not found" ) ) ) ,
352+ Ok ( Some ( v) ) => Ok ( v) ,
358353 Err ( e) => Err ( e) ,
359354 }
360355 }
@@ -377,7 +372,7 @@ impl Rdict {
377372 default : Option < Bound < ' py , PyAny > > ,
378373 read_opt : Option < & ReadOptionsPy > ,
379374 py : Python < ' py > ,
380- ) -> PyResult < Bound < ' py , PyAny > > {
375+ ) -> PyResult < Option < Bound < ' py , PyAny > > > {
381376 let db = self . get_db ( ) ?;
382377 let read_opt_option = match read_opt {
383378 None => None ,
@@ -395,7 +390,9 @@ impl Rdict {
395390 Some ( cf) => cf. clone ( ) ,
396391 } ;
397392 if let Ok ( keys) = key. cast ( ) {
398- return Ok ( self . get_batch_inner ( db, keys, default, py, & cf) ?. into_any ( ) ) ;
393+ return Ok ( Some (
394+ self . get_batch_inner ( db, keys, default, py, & cf) ?. into_any ( ) ,
395+ ) ) ;
399396 }
400397 let key_bytes = encode_key ( key, self . opt_py . raw_mode ) ?;
401398 let value_result = db
@@ -405,17 +402,17 @@ impl Rdict {
405402 None => {
406403 // try to return default value
407404 if let Some ( default) = default {
408- Ok ( default)
405+ Ok ( Some ( default) )
409406 } else {
410- Ok ( py . None ( ) . bind ( py ) . to_owned ( ) )
407+ Ok ( None )
411408 }
412409 }
413- Some ( slice) => Ok ( decode_value (
410+ Some ( slice) => Ok ( Some ( decode_value (
414411 py,
415412 slice. as_ref ( ) ,
416413 & self . loads ,
417414 self . opt_py . raw_mode ,
418- ) ?) ,
415+ ) ?) ) ,
419416 }
420417 }
421418
0 commit comments