use std::cmp::Ordering;
use whasher::fast_hash;
use windex::HashIndex;
use super::txn_key_entry::TxnKeyEntry;
pub struct TxnKeyEntryComparison;
impl TxnKeyEntryComparison {
#[inline]
pub fn key_hash(key: &[u8]) -> i64 {
fast_hash(key) as i64
}
#[inline]
pub fn compare(index: &HashIndex, key1: &TxnKeyEntry, key2: &TxnKeyEntry) -> Ordering {
let bucket_a = index.bucket_index_for_hash(key1.key_hash as u64);
let bucket_b = index.bucket_index_for_hash(key2.key_hash as u64);
bucket_a
.cmp(&bucket_b)
.then_with(|| key1.key_hash.cmp(&key2.key_hash))
.then_with(|| key1.lock_type.cmp(&key2.lock_type))
}
}