pub trait MappedEq<T: ?Sized = Self> {
    type BlankId;

    // Required method
    fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>(
        &'a self,
        other: &T,
        f: F
    ) -> bool
       where Self::BlankId: 'a + 'b;
}

Required Associated Types§

Required Methods§

source

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &T, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

Structural equality with mapped blank identifiers.

Does not care for metadata.

Implementations on Foreign Types§

source§

impl<T: MappedEq> MappedEq<HashSet<T, RandomState>> for HashSet<T>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq> MappedEq<Stripped<T>> for Stripped<T>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq> MappedEq<Option<T>> for Option<T>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<'u, 't, U, T: MappedEq<U>> MappedEq<&'u U> for &'t T

§

type BlankId = <T as MappedEq<U>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &&'u U, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq, M> MappedEq<Meta<T, M>> for Meta<T, M>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq, M> MappedEq<Entry<T, M>> for Entry<T, M>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq> MappedEq<Vec<T, Global>> for Vec<T>

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

source§

impl<T: MappedEq> MappedEq<[T]> for [T]

§

type BlankId = <T as MappedEq<T>>::BlankId

source§

fn mapped_eq<'a, 'b, F: Clone + Fn(&'a Self::BlankId) -> &'b Self::BlankId>( &'a self, other: &Self, f: F ) -> boolwhere Self::BlankId: 'a + 'b,

Implementors§

source§

impl<T: Eq + Hash, B: Eq + Hash, M> MappedEq<Object<T, B, M>> for Object<T, B, M>

§

type BlankId = B

source§

impl<T: Eq + Hash, B: Eq + Hash, M> MappedEq<List<T, B, M>> for List<T, B, M>

§

type BlankId = B

source§

impl<T: Eq + Hash, B: Eq + Hash, M> MappedEq<Properties<T, B, M>> for Properties<T, B, M>

§

type BlankId = B

source§

impl<T: Eq + Hash, B: Eq + Hash, M> MappedEq<ReverseProperties<T, B, M>> for ReverseProperties<T, B, M>

§

type BlankId = B

source§

impl<T: Eq + Hash, B: Eq + Hash, M> MappedEq<Node<T, B, M>> for Node<T, B, M>

§

type BlankId = B

source§

impl<T: PartialEq, B: PartialEq> MappedEq<Id<T, B>> for Id<T, B>

§

type BlankId = B

source§

impl<T: PartialEq, B: PartialEq> MappedEq<Id<T, B>> for ValidId<T, B>

§

type BlankId = B

source§

impl<T: MappedEq, M> MappedEq<Indexed<T, M>> for Indexed<T, M>

§

type BlankId = <T as MappedEq<T>>::BlankId