pub fn query(&self, after: K) -> Option<Vec<(K, V)>> {
        let latency = self.metrics.latency[&Method::Get].start();
        let result = match self.data.partition_point(|&(key, _)| key <= after) {
            // All the cache elements are greater than the key provided - cannot use the cache
            0 => None,

            // Partition point found - will return all elements after it.
            // `partition_point` returns the first element for which predicate returns false.
            pos => Some(self.data.range(pos..).cloned().collect()),
        };
        latency.observe();
        self.metrics.requests[&RequestOutcome::from_hit(result.is_some())].inc();
        result
    }
Queries and returns all values associated with keys strictly greater than the specified key.
Returns `None` if cache cannot be used for this key -
that is, the oldest cache element is larger than the key requested, and we cannot guarantee
that there were no (dropped) elements between the requested key and the oldest hash element
Otherwise returns `Some(results)`
with the cache tail starting from the requested key - but not including it.
Can be empty if the requested key is the largest in the cache.
core/lib/state/src/cache/sequential_cache.rs