Trait Equivalent

Source
pub trait Equivalent<Q>
where Q: ?Sized,
{ // Required method fn equivalent(&self, key: &Q) -> bool; }
Expand description

Key equivalence trait.

This trait allows hash table lookup to be customized. It has one blanket implementation that uses the regular solution with Borrow and Eq, just like HashMap does, so that you can pass &str to lookup into a map with String keys and so on.

§Contract

The implementor must hash like Q, if it is hashable.

Required Methods§

Source

fn equivalent(&self, key: &Q) -> bool

Compare self to key and return true if they are equal.

Implementations on Foreign Types§

Source§

impl Equivalent<VacantBuffer<'_>> for [u8]

Source§

fn equivalent(&self, key: &VacantBuffer<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &&[u8]

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &Cow<'_, [u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &Box<[u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &Arc<[u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &Vec<u8>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for &[u8]

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for Cow<'_, [u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for Box<[u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for Arc<[u8]>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for Vec<u8>

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl Equivalent<SliceRef<'_>> for [u8]

Source§

fn equivalent(&self, key: &SliceRef<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &&str

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &Cow<'_, str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &str

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &Box<str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &String

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for &Arc<str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for Cow<'_, str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for str

Source§

fn equivalent(&self, key: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for Box<str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for String

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl Equivalent<Str<'_>> for Arc<str>

Source§

fn equivalent(&self, other: &Str<'_>) -> bool

Source§

impl<const N: usize> Equivalent<SliceRef<'_>> for &[u8; N]

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Source§

impl<const N: usize> Equivalent<SliceRef<'_>> for [u8; N]

Source§

fn equivalent(&self, other: &SliceRef<'_>) -> bool

Implementors§

Source§

impl Equivalent<&&str> for Str<'_>

Source§

impl Equivalent<&&[u8]> for SliceRef<'_>

Source§

impl Equivalent<&Cow<'_, str>> for Str<'_>

Source§

impl Equivalent<&Cow<'_, [u8]>> for SliceRef<'_>

Source§

impl Equivalent<&str> for Str<'_>

Source§

impl Equivalent<&Box<str>> for Str<'_>

Source§

impl Equivalent<&Box<[u8]>> for SliceRef<'_>

Source§

impl Equivalent<&String> for Str<'_>

Source§

impl Equivalent<&Arc<str>> for Str<'_>

Source§

impl Equivalent<&Arc<[u8]>> for SliceRef<'_>

Source§

impl Equivalent<&Vec<u8>> for SliceRef<'_>

Source§

impl Equivalent<&[u8]> for SliceRef<'_>

Source§

impl Equivalent<Cow<'_, str>> for Str<'_>

Source§

impl Equivalent<Cow<'_, [u8]>> for SliceRef<'_>

Source§

impl Equivalent<Box<str>> for Str<'_>

Source§

impl Equivalent<Box<[u8]>> for SliceRef<'_>

Source§

impl Equivalent<String> for Str<'_>

Source§

impl Equivalent<Arc<str>> for Str<'_>

Source§

impl Equivalent<Arc<[u8]>> for SliceRef<'_>

Source§

impl Equivalent<Vec<u8>> for SliceRef<'_>

Source§

impl<K, Q> Equivalent<Q> for K
where K: Borrow<Q> + ?Sized, Q: Eq + ?Sized,

Source§

impl<const N: usize> Equivalent<&[u8; N]> for SliceRef<'_>

Source§

impl<const N: usize> Equivalent<[u8; N]> for SliceRef<'_>