ItemRef is a struct that contains references to key and value, which is useful since in many
cases since keys and values are stored separately so &Item is not possible.
An extension to std::hash::Hash to support values which should be partitioned and hashed into
buckets, where nearby keys will have the same hash value. This is used for existence filtering
in layer files (see Layer::maybe_contains_key).
Determines how to iterate forward from the current key, and how many older layers to include
when merging. See the different variants of MergeKeyType for more details.
The find functions will return items with keys that are greater-than or equal to the search key,
so for keys that are like extents, the keys should sort (via OrdUpperBound) using the end
of their ranges, and you should set the search key accordingly.
Superset of LayerValue to additionally support tree searching, requires comparison and an
DELETED_MARKER for indicating empty values used to indicate deletion in the LSMTree.