|
use std::borrow::Borrow;
|
|
|
|
pub trait Equivalent<K: ?Sized> {
|
|
fn equivalent(&self, key: &K) -> bool;
|
|
}
|
|
|
|
impl<Q: ?Sized, K: ?Sized> Equivalent<K> for Q
|
|
where
|
|
Q: Eq,
|
|
K: Borrow<Q>,
|
|
{
|
|
fn equivalent(&self, key: &K) -> bool {
|
|
PartialEq::eq(self, key.borrow())
|
|
}
|
|
}
|