Description
I'm using btree
to provide an in-memory key-value store for use as a non-persistent substitute for other key-value databases in a cacheing application. The interface that I need to implement using this package requires that I provide an iterator which exposes Next()
and Prev()
methods.
I have done this using the AscendGreaterOrEqual
and DescendLessOrEqual
methods as follows: I store a pointer to the current item, and use it as a reference to ascend or descend from, when Next()
or Prev()
are called, respectively.
While, I believe that internally, iteration within the provided method calls is O(1), in my case, I believe that the lookup of the current item is always O(logN). Since there is not another obvious, O(1) way (to me at least) to restart iteration from a given Item, and move forward or backward one position in the manner I need, and which is common in most key-value store interfaces, I was wondering if the authors thought it might be useful to expose another way to control iteration in a step-by-step manner - O(1) - which keeps track of the current item.