The LMDB cursor API is quite powerful; something similar should be exposed by heed. The RwIter API gets close, but is unsafe and does not handle seeking to arbitrary keys. The API should allow the following operations:
Seeking to an arbitrary key.
Seeking to the next/previous key-value pair.
Reading the current key/value (could be part of the seeking operations).
Inserting an arbitrary key-value pair (LMDB optimizes for cases where the key would end up close to where the cursor is currently pointing).
A full cursor API would also let us efficiently implement an API similar to HashMap::entry (see this comment).
The LMDB cursor API is quite powerful; something similar should be exposed by
heed
. TheRwIter
API gets close, but isunsafe
and does not handle seeking to arbitrary keys. The API should allow the following operations:A full cursor API would also let us efficiently implement an API similar to
HashMap::entry
(see this comment).