@@ -897,7 +897,7 @@ module {
897897 let (end_node, end_node_index) = Methods . get_leaf_node_by_index(btree, end);
898898
899899 let start_index = start_node_index : Nat ;
900- let end_index = end_node_index + 1 : Nat ; // + 1 because the end index is exclusive
900+ let end_index = end_node_index : Nat ;
901901
902902 RevIter . map< (Blob , Blob ), (K , V )> (
903903 Methods . new_blobs_iterator(btree, start_node, start_index, end_node, end_index),
@@ -907,6 +907,20 @@ module {
907907 );
908908 };
909909
910+ public func getInterval< K , V > (btree : MemoryBTree , btree_utils : BTreeUtils < K , V > , start : ?K , end : ?K ) : (Nat , Nat ) {
911+ let start_rank = switch (start) {
912+ case (?key) getIndex(btree, btree_utils, key);
913+ case (null ) 0 ;
914+ };
915+
916+ let end_rank = switch (end) {
917+ case (?key) getIndex(btree, btree_utils, key) + 1 ; // +1 because the end is exclusive
918+ case (null ) btree. count;
919+ };
920+
921+ (start_rank, end_rank);
922+ };
923+
910924 public func scan< K , V > (btree : MemoryBTree , btree_utils : BTreeUtils < K , V > , start : ?K , end : ?K ) : RevIter < (K , V )> {
911925 let start_address = switch (start) {
912926 case (?key) {
0 commit comments