@@ -61,9 +61,9 @@ pub trait Cursor<'txn> {
61
61
/// For databases with duplicate data items (`DatabaseFlags::DUP_SORT`), the
62
62
/// duplicate data items of each key will be returned before moving on to
63
63
/// the next key.
64
- fn iter_from < K > ( & mut self , key : K ) -> Iter < ' txn > where K : AsRef < [ u8 ] > {
65
- self . get ( Some ( key. as_ref ( ) ) , None , ffi:: MDB_SET_RANGE ) . unwrap ( ) ;
66
- Iter :: new ( self . cursor ( ) , ffi:: MDB_GET_CURRENT , ffi:: MDB_NEXT )
64
+ fn iter_from < K > ( & mut self , key : K ) -> Result < Iter < ' txn > > where K : AsRef < [ u8 ] > {
65
+ try! ( self . get ( Some ( key. as_ref ( ) ) , None , ffi:: MDB_SET_RANGE ) ) ;
66
+ Ok ( Iter :: new ( self . cursor ( ) , ffi:: MDB_GET_CURRENT , ffi:: MDB_NEXT ) )
67
67
}
68
68
69
69
/// Iterate over duplicate database items. The iterator will begin with the
@@ -83,8 +83,8 @@ pub trait Cursor<'txn> {
83
83
/// Iterate over duplicate items in the database starting from the given
84
84
/// key. Each item will be returned as an iterator of its duplicates.
85
85
fn iter_dup_from < K > ( & mut self , key : & K ) -> IterDup < ' txn > where K : AsRef < [ u8 ] > {
86
- self . get ( Some ( key. as_ref ( ) ) , None , ffi:: MDB_SET_RANGE ) . unwrap ( ) ;
87
- IterDup :: new ( self . cursor ( ) , ffi:: MDB_GET_CURRENT )
86
+ try! ( self . get ( Some ( key. as_ref ( ) ) , None , ffi:: MDB_SET_RANGE ) ) ;
87
+ Ok ( IterDup :: new ( self . cursor ( ) , ffi:: MDB_GET_CURRENT ) )
88
88
}
89
89
90
90
/// Iterate over the duplicates of the item in the database with the given
@@ -419,7 +419,7 @@ mod test {
419
419
assert_eq ! ( items, cursor. iter_start( ) . collect:: <Vec <_>>( ) ) ;
420
420
421
421
assert_eq ! ( items. clone( ) . into_iter( ) . skip( 1 ) . collect:: <Vec <_>>( ) ,
422
- cursor. iter_from( b"key2" ) . collect:: <Vec <_>>( ) ) ;
422
+ cursor. iter_from( b"key2" ) . unwrap ( ) . collect:: <Vec <_>>( ) ) ;
423
423
}
424
424
425
425
#[ test]
@@ -458,7 +458,7 @@ mod test {
458
458
cursor. iter_dup_start( ) . flat_map( |x| x) . collect:: <Vec <( & [ u8 ] , & [ u8 ] ) >>( ) ) ;
459
459
460
460
assert_eq ! ( items. clone( ) . into_iter( ) . skip( 3 ) . collect:: <Vec <( & [ u8 ] , & [ u8 ] ) >>( ) ,
461
- cursor. iter_dup_from( b"b" ) . flat_map( |x| x) . collect:: <Vec <_>>( ) ) ;
461
+ cursor. iter_dup_from( b"b" ) . unwrap ( ) . flat_map( |x| x) . collect:: <Vec <_>>( ) ) ;
462
462
463
463
assert_eq ! ( items. clone( ) . into_iter( ) . skip( 3 ) . collect:: <Vec <( & [ u8 ] , & [ u8 ] ) >>( ) ,
464
464
cursor. iter_dup_from( b"ab" ) . flat_map( |x| x) . collect:: <Vec <_>>( ) ) ;
0 commit comments