pub trait KeyExtractor<'a, T> { type Key: Hash; // Required method fn extract(&self, from: &'a T) -> Self::Key; }