Trait nom::lib::std::prelude::v1::rust_2018::PartialEq 1.0.0[−][src]
#[lang = "eq"] pub trait PartialEq<Rhs = Self> where
Rhs: ?Sized, { #[must_use] pub fn eq(&self, other: &Rhs) -> bool; #[must_use] pub fn ne(&self, other: &Rhs) -> bool { ... } }
Trait for equality comparisons which are partial equivalence relations.
This trait allows for partial equality, for types that do not have a full
equivalence relation. For example, in floating point numbers NaN != NaN
,
so floating point types implement PartialEq
but not Eq
.
Formally, the equality must be (for all a
, b
, c
of type A
, B
,
C
):
-
Symmetric: if
A: PartialEq<B>
andB: PartialEq<A>
, thena == b
impliesb == a
; and -
Transitive: if
A: PartialEq<B>
andB: PartialEq<C>
andA: PartialEq<C>
, thena == b
andb == c
impliesa == c
.
Note that the B: PartialEq<A>
(symmetric) and A: PartialEq<C>
(transitive) impls are not forced to exist, but these requirements apply
whenever they do exist.
Derivable
This trait can be used with #[derive]
. When derive
d on structs, two
instances are equal if all fields are equal, and not equal if any fields
are not equal. When derive
d on enums, each variant is equal to itself
and not equal to the other variants.
How can I implement PartialEq
?
PartialEq
only requires the eq
method to be implemented; ne
is defined
in terms of it by default. Any manual implementation of ne
must respect
the rule that eq
is a strict inverse of ne
; that is, !(a == b)
if and
only if a != b
.
Implementations of PartialEq
, PartialOrd
, and Ord
must agree with
each other. It’s easy to accidentally make them disagree by deriving some
of the traits and manually implementing others.
An example implementation for a domain in which two books are considered the same book if their ISBN matches, even if the formats differ:
enum BookFormat { Paperback, Hardback, Ebook, } struct Book { isbn: i32, format: BookFormat, } impl PartialEq for Book { fn eq(&self, other: &Self) -> bool { self.isbn == other.isbn } } let b1 = Book { isbn: 3, format: BookFormat::Paperback }; let b2 = Book { isbn: 3, format: BookFormat::Ebook }; let b3 = Book { isbn: 10, format: BookFormat::Paperback }; assert!(b1 == b2); assert!(b1 != b3);
How can I compare two different types?
The type you can compare with is controlled by PartialEq
’s type parameter.
For example, let’s tweak our previous code a bit:
// The derive implements <BookFormat> == <BookFormat> comparisons #[derive(PartialEq)] enum BookFormat { Paperback, Hardback, Ebook, } struct Book { isbn: i32, format: BookFormat, } // Implement <Book> == <BookFormat> comparisons impl PartialEq<BookFormat> for Book { fn eq(&self, other: &BookFormat) -> bool { self.format == *other } } // Implement <BookFormat> == <Book> comparisons impl PartialEq<Book> for BookFormat { fn eq(&self, other: &Book) -> bool { *self == other.format } } let b1 = Book { isbn: 3, format: BookFormat::Paperback }; assert!(b1 == BookFormat::Paperback); assert!(BookFormat::Ebook != b1);
By changing impl PartialEq for Book
to impl PartialEq<BookFormat> for Book
,
we allow BookFormat
s to be compared with Book
s.
A comparison like the one above, which ignores some fields of the struct,
can be dangerous. It can easily lead to an unintended violation of the
requirements for a partial equivalence relation. For example, if we kept
the above implementation of PartialEq<Book>
for BookFormat
and added an
implementation of PartialEq<Book>
for Book
(either via a #[derive]
or
via the manual implementation from the first example) then the result would
violate transitivity:
#[derive(PartialEq)] enum BookFormat { Paperback, Hardback, Ebook, } #[derive(PartialEq)] struct Book { isbn: i32, format: BookFormat, } impl PartialEq<BookFormat> for Book { fn eq(&self, other: &BookFormat) -> bool { self.format == *other } } impl PartialEq<Book> for BookFormat { fn eq(&self, other: &Book) -> bool { *self == other.format } } fn main() { let b1 = Book { isbn: 1, format: BookFormat::Paperback }; let b2 = Book { isbn: 2, format: BookFormat::Paperback }; assert!(b1 == BookFormat::Paperback); assert!(BookFormat::Paperback == b2); // The following should hold by transitivity but doesn't. assert!(b1 == b2); // <-- PANICS }
Examples
let x: u32 = 0; let y: u32 = 1; assert_eq!(x == y, false); assert_eq!(x.eq(&y), false);
Required methods
#[must_use]pub fn eq(&self, other: &Rhs) -> bool
[src]
This method tests for self
and other
values to be equal, and is used
by ==
.
Provided methods
Loading content...Implementations on Foreign Types
impl<Dyn> PartialEq<DynMetadata<Dyn>> for DynMetadata<Dyn> where
Dyn: ?Sized,
[src]
Dyn: ?Sized,
pub fn eq(&self, other: &DynMetadata<Dyn>) -> bool
[src]
impl PartialEq<Layout> for Layout
[src]
impl PartialEq<NonZeroU128> for NonZeroU128
[src]
pub fn eq(&self, other: &NonZeroU128) -> bool
[src]
pub fn ne(&self, other: &NonZeroU128) -> bool
[src]
impl PartialEq<ParseFloatError> for ParseFloatError
[src]
pub fn eq(&self, other: &ParseFloatError) -> bool
[src]
pub fn ne(&self, other: &ParseFloatError) -> bool
[src]
impl PartialEq<PhantomPinned> for PhantomPinned
[src]
pub fn eq(&self, other: &PhantomPinned) -> bool
[src]
impl PartialEq<NonZeroIsize> for NonZeroIsize
[src]
pub fn eq(&self, other: &NonZeroIsize) -> bool
[src]
pub fn ne(&self, other: &NonZeroIsize) -> bool
[src]
impl PartialEq<RawWakerVTable> for RawWakerVTable
[src]
pub fn eq(&self, other: &RawWakerVTable) -> bool
[src]
pub fn ne(&self, other: &RawWakerVTable) -> bool
[src]
impl PartialEq<NonZeroI16> for NonZeroI16
[src]
pub fn eq(&self, other: &NonZeroI16) -> bool
[src]
pub fn ne(&self, other: &NonZeroI16) -> bool
[src]
impl PartialEq<FpCategory> for FpCategory
[src]
pub fn eq(&self, other: &FpCategory) -> bool
[src]
impl PartialEq<AllocError> for AllocError
[src]
pub fn eq(&self, other: &AllocError) -> bool
[src]
impl<T> PartialEq<NonNull<T>> for NonNull<T> where
T: ?Sized,
[src]
T: ?Sized,
impl PartialEq<DecodeUtf16Error> for DecodeUtf16Error
[src]
pub fn eq(&self, other: &DecodeUtf16Error) -> bool
[src]
pub fn ne(&self, other: &DecodeUtf16Error) -> bool
[src]
impl<H> PartialEq<BuildHasherDefault<H>> for BuildHasherDefault<H>
[src]
pub fn eq(&self, _other: &BuildHasherDefault<H>) -> bool
[src]
impl<T> PartialEq<OnceCell<T>> for OnceCell<T> where
T: PartialEq<T>,
[src]
T: PartialEq<T>,
impl<P, Q> PartialEq<Pin<Q>> for Pin<P> where
P: Deref,
Q: Deref,
<P as Deref>::Target: PartialEq<<Q as Deref>::Target>,
[src]
P: Deref,
Q: Deref,
<P as Deref>::Target: PartialEq<<Q as Deref>::Target>,
impl PartialEq<NonZeroI128> for NonZeroI128
[src]
pub fn eq(&self, other: &NonZeroI128) -> bool
[src]
pub fn ne(&self, other: &NonZeroI128) -> bool
[src]
impl PartialEq<NonZeroI8> for NonZeroI8
[src]
impl<T> PartialEq<Wrapping<T>> for Wrapping<T> where
T: PartialEq<T>,
[src]
T: PartialEq<T>,
pub fn eq(&self, other: &Wrapping<T>) -> bool
[src]
pub fn ne(&self, other: &Wrapping<T>) -> bool
[src]
impl<T> PartialEq<PhantomData<T>> for PhantomData<T> where
T: ?Sized,
[src]
T: ?Sized,
pub fn eq(&self, _other: &PhantomData<T>) -> bool
[src]
impl PartialEq<NonZeroU64> for NonZeroU64
[src]
pub fn eq(&self, other: &NonZeroU64) -> bool
[src]
pub fn ne(&self, other: &NonZeroU64) -> bool
[src]
impl PartialEq<NonZeroI32> for NonZeroI32
[src]
pub fn eq(&self, other: &NonZeroI32) -> bool
[src]
pub fn ne(&self, other: &NonZeroI32) -> bool
[src]
impl<T> PartialEq<Cell<T>> for Cell<T> where
T: PartialEq<T> + Copy,
[src]
T: PartialEq<T> + Copy,
impl<T> PartialEq<Poll<T>> for Poll<T> where
T: PartialEq<T>,
[src]
T: PartialEq<T>,
impl PartialEq<NonZeroU32> for NonZeroU32
[src]
pub fn eq(&self, other: &NonZeroU32) -> bool
[src]
pub fn ne(&self, other: &NonZeroU32) -> bool
[src]
impl PartialEq<RawWaker> for RawWaker
[src]
impl PartialEq<TypeId> for TypeId
[src]
impl PartialEq<TryFromIntError> for TryFromIntError
[src]
pub fn eq(&self, other: &TryFromIntError) -> bool
[src]
pub fn ne(&self, other: &TryFromIntError) -> bool
[src]
impl PartialEq<IntErrorKind> for IntErrorKind
[src]
pub fn eq(&self, other: &IntErrorKind) -> bool
[src]
impl PartialEq<NonZeroI64> for NonZeroI64
[src]
pub fn eq(&self, other: &NonZeroI64) -> bool
[src]
pub fn ne(&self, other: &NonZeroI64) -> bool
[src]
impl PartialEq<NonZeroU8> for NonZeroU8
[src]
impl PartialEq<Ordering> for Ordering
[src]
impl<'a> PartialEq<Location<'a>> for Location<'a>
[src]
pub fn eq(&self, other: &Location<'a>) -> bool
[src]
pub fn ne(&self, other: &Location<'a>) -> bool
[src]
impl PartialEq<ParseCharError> for ParseCharError
[src]
pub fn eq(&self, other: &ParseCharError) -> bool
[src]
pub fn ne(&self, other: &ParseCharError) -> bool
[src]
impl PartialEq<NonZeroU16> for NonZeroU16
[src]
pub fn eq(&self, other: &NonZeroU16) -> bool
[src]
pub fn ne(&self, other: &NonZeroU16) -> bool
[src]
impl PartialEq<NonZeroUsize> for NonZeroUsize
[src]
pub fn eq(&self, other: &NonZeroUsize) -> bool
[src]
pub fn ne(&self, other: &NonZeroUsize) -> bool
[src]
impl<T> PartialEq<RefCell<T>> for RefCell<T> where
T: PartialEq<T> + ?Sized,
[src]
T: PartialEq<T> + ?Sized,
pub fn eq(&self, other: &RefCell<T>) -> bool
[src]
Panics
Panics if the value in either RefCell
is currently borrowed.
impl PartialEq<Duration> for Duration
[src]
impl PartialEq<CpuidResult> for CpuidResult
[src]
pub fn eq(&self, other: &CpuidResult) -> bool
[src]
pub fn ne(&self, other: &CpuidResult) -> bool
[src]
impl PartialEq<CharTryFromError> for CharTryFromError
[src]
pub fn eq(&self, other: &CharTryFromError) -> bool
[src]
pub fn ne(&self, other: &CharTryFromError) -> bool
[src]
impl PartialEq<ParseIntError> for ParseIntError
[src]
pub fn eq(&self, other: &ParseIntError) -> bool
[src]
pub fn ne(&self, other: &ParseIntError) -> bool
[src]
impl PartialEq<LayoutError> for LayoutError
[src]
pub fn eq(&self, other: &LayoutError) -> bool
[src]
pub fn ne(&self, other: &LayoutError) -> bool
[src]
Implementors
impl PartialEq<!> for !
[src]
impl PartialEq<()> for ()
[src]
impl PartialEq<CompareResult> for CompareResult
[src]
fn eq(&self, other: &CompareResult) -> bool
[src]
impl PartialEq<Needed> for Needed
[src]
impl PartialEq<ErrorKind> for ErrorKind
[src]
impl PartialEq<Ordering> for nom::lib::std::cmp::Ordering
[src]
impl PartialEq<Infallible> for Infallible
1.34.0[src]
pub fn eq(&self, &Infallible) -> bool
[src]
impl PartialEq<SearchStep> for SearchStep
[src]
pub fn eq(&self, other: &SearchStep) -> bool
[src]
pub fn ne(&self, other: &SearchStep) -> bool
[src]
impl PartialEq<Endianness> for Endianness
[src]
fn eq(&self, other: &Endianness) -> bool
[src]
impl PartialEq<Error> for nom::lib::std::fmt::Error
[src]
impl PartialEq<RangeFull> for RangeFull
[src]
impl PartialEq<NoneError> for NoneError
[src]
impl PartialEq<ParseBoolError> for ParseBoolError
[src]
pub fn eq(&self, other: &ParseBoolError) -> bool
[src]
pub fn ne(&self, other: &ParseBoolError) -> bool
[src]
impl PartialEq<Utf8Error> for Utf8Error
[src]
impl PartialEq<bool> for bool
[src]
impl PartialEq<char> for char
[src]
impl PartialEq<f32> for f32
[src]
impl PartialEq<f64> for f64
[src]
impl PartialEq<i8> for i8
[src]
impl PartialEq<i16> for i16
[src]
impl PartialEq<i32> for i32
[src]
impl PartialEq<i64> for i64
[src]
impl PartialEq<i128> for i128
[src]
impl PartialEq<isize> for isize
[src]
impl PartialEq<str> for str
[src]
impl PartialEq<u8> for u8
[src]
impl PartialEq<u16> for u16
[src]
impl PartialEq<u32> for u32
[src]
impl PartialEq<u64> for u64
[src]
impl PartialEq<u128> for u128
[src]
impl PartialEq<usize> for usize
[src]
impl<'_, '_, A, B> PartialEq<&'_ B> for &'_ A where
A: PartialEq<B> + ?Sized,
B: ?Sized,
[src]
A: PartialEq<B> + ?Sized,
B: ?Sized,
impl<'_, '_, A, B> PartialEq<&'_ B> for &'_ mut A where
A: PartialEq<B> + ?Sized,
B: ?Sized,
[src]
A: PartialEq<B> + ?Sized,
B: ?Sized,
impl<'_, '_, A, B> PartialEq<&'_ mut B> for &'_ A where
A: PartialEq<B> + ?Sized,
B: ?Sized,
[src]
A: PartialEq<B> + ?Sized,
B: ?Sized,
impl<'_, '_, A, B> PartialEq<&'_ mut B> for &'_ mut A where
A: PartialEq<B> + ?Sized,
B: ?Sized,
[src]
A: PartialEq<B> + ?Sized,
B: ?Sized,
impl<'_, A, B, const N: usize> PartialEq<&'_ [B]> for [A; N] where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'_, A, B, const N: usize> PartialEq<&'_ mut [B]> for [A; N] where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'_, A, B, const N: usize> PartialEq<[A; N]> for &'_ [B] where
B: PartialEq<A>,
[src]
B: PartialEq<A>,
impl<'_, A, B, const N: usize> PartialEq<[A; N]> for &'_ mut [B] where
B: PartialEq<A>,
[src]
B: PartialEq<A>,
impl<'a> PartialEq<Utf8LossyChunk<'a>> for Utf8LossyChunk<'a>
[src]
pub fn eq(&self, other: &Utf8LossyChunk<'a>) -> bool
[src]
pub fn ne(&self, other: &Utf8LossyChunk<'a>) -> bool
[src]
impl<A> PartialEq<(A,)> for (A,) where
A: PartialEq<A> + ?Sized,
[src]
A: PartialEq<A> + ?Sized,
impl<A, B> PartialEq<(A, B)> for (A, B) where
A: PartialEq<A>,
B: PartialEq<B> + ?Sized,
[src]
A: PartialEq<A>,
B: PartialEq<B> + ?Sized,
impl<A, B> PartialEq<[B]> for [A] where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<A, B, C> PartialEq<(A, B, C)> for (A, B, C) where
C: PartialEq<C> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
[src]
C: PartialEq<C> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
impl<A, B, C, D> PartialEq<(A, B, C, D)> for (A, B, C, D) where
C: PartialEq<C>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D> + ?Sized,
[src]
C: PartialEq<C>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D> + ?Sized,
pub fn eq(&self, other: &(A, B, C, D)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D)) -> bool
[src]
impl<A, B, C, D, E> PartialEq<(A, B, C, D, E)> for (A, B, C, D, E) where
C: PartialEq<C>,
E: PartialEq<E> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
[src]
C: PartialEq<C>,
E: PartialEq<E> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
pub fn eq(&self, other: &(A, B, C, D, E)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E)) -> bool
[src]
impl<A, B, C, D, E, F> PartialEq<(A, B, C, D, E, F)> for (A, B, C, D, E, F) where
C: PartialEq<C>,
F: PartialEq<F> + ?Sized,
E: PartialEq<E>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
[src]
C: PartialEq<C>,
F: PartialEq<F> + ?Sized,
E: PartialEq<E>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
pub fn eq(&self, other: &(A, B, C, D, E, F)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F)) -> bool
[src]
impl<A, B, C, D, E, F, G> PartialEq<(A, B, C, D, E, F, G)> for (A, B, C, D, E, F, G) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
G: PartialEq<G> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
G: PartialEq<G> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
pub fn eq(&self, other: &(A, B, C, D, E, F, G)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G)) -> bool
[src]
impl<A, B, C, D, E, F, G, H> PartialEq<(A, B, C, D, E, F, G, H)> for (A, B, C, D, E, F, G, H) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
G: PartialEq<G>,
H: PartialEq<H> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
G: PartialEq<G>,
H: PartialEq<H> + ?Sized,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
pub fn eq(&self, other: &(A, B, C, D, E, F, G, H)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G, H)) -> bool
[src]
impl<A, B, C, D, E, F, G, H, I> PartialEq<(A, B, C, D, E, F, G, H, I)> for (A, B, C, D, E, F, G, H, I) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I> + ?Sized,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I> + ?Sized,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
pub fn eq(&self, other: &(A, B, C, D, E, F, G, H, I)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G, H, I)) -> bool
[src]
impl<A, B, C, D, E, F, G, H, I, J> PartialEq<(A, B, C, D, E, F, G, H, I, J)> for (A, B, C, D, E, F, G, H, I, J) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J> + ?Sized,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J> + ?Sized,
pub fn eq(&self, other: &(A, B, C, D, E, F, G, H, I, J)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G, H, I, J)) -> bool
[src]
impl<A, B, C, D, E, F, G, H, I, J, K> PartialEq<(A, B, C, D, E, F, G, H, I, J, K)> for (A, B, C, D, E, F, G, H, I, J, K) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J>,
K: PartialEq<K> + ?Sized,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J>,
K: PartialEq<K> + ?Sized,
pub fn eq(&self, other: &(A, B, C, D, E, F, G, H, I, J, K)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G, H, I, J, K)) -> bool
[src]
impl<A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<(A, B, C, D, E, F, G, H, I, J, K, L)> for (A, B, C, D, E, F, G, H, I, J, K, L) where
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J>,
K: PartialEq<K>,
L: PartialEq<L> + ?Sized,
[src]
C: PartialEq<C>,
F: PartialEq<F>,
E: PartialEq<E>,
I: PartialEq<I>,
G: PartialEq<G>,
H: PartialEq<H>,
A: PartialEq<A>,
B: PartialEq<B>,
D: PartialEq<D>,
J: PartialEq<J>,
K: PartialEq<K>,
L: PartialEq<L> + ?Sized,
pub fn eq(&self, other: &(A, B, C, D, E, F, G, H, I, J, K, L)) -> bool
[src]
pub fn ne(&self, other: &(A, B, C, D, E, F, G, H, I, J, K, L)) -> bool
[src]
impl<A, B, const N: usize> PartialEq<[A; N]> for [B] where
B: PartialEq<A>,
[src]
B: PartialEq<A>,
impl<A, B, const N: usize> PartialEq<[B; N]> for [A; N] where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<A, B, const N: usize> PartialEq<[B]> for [A; N] where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<B, C> PartialEq<ControlFlow<B, C>> for ControlFlow<B, C> where
C: PartialEq<C>,
B: PartialEq<B>,
[src]
C: PartialEq<C>,
B: PartialEq<B>,
pub fn eq(&self, other: &ControlFlow<B, C>) -> bool
[src]
pub fn ne(&self, other: &ControlFlow<B, C>) -> bool
[src]
impl<E: PartialEq> PartialEq<Err<E>> for Err<E>
[src]
impl<I: PartialEq> PartialEq<Error<I>> for nom::error::Error<I>
[src]
impl<Idx> PartialEq<Range<Idx>> for Range<Idx> where
Idx: PartialEq<Idx>,
[src]
Idx: PartialEq<Idx>,
impl<Idx> PartialEq<RangeFrom<Idx>> for RangeFrom<Idx> where
Idx: PartialEq<Idx>,
[src]
Idx: PartialEq<Idx>,
pub fn eq(&self, other: &RangeFrom<Idx>) -> bool
[src]
pub fn ne(&self, other: &RangeFrom<Idx>) -> bool
[src]
impl<Idx> PartialEq<RangeInclusive<Idx>> for RangeInclusive<Idx> where
Idx: PartialEq<Idx>,
1.26.0[src]
Idx: PartialEq<Idx>,
pub fn eq(&self, other: &RangeInclusive<Idx>) -> bool
[src]
pub fn ne(&self, other: &RangeInclusive<Idx>) -> bool
[src]
impl<Idx> PartialEq<RangeTo<Idx>> for RangeTo<Idx> where
Idx: PartialEq<Idx>,
[src]
Idx: PartialEq<Idx>,
pub fn eq(&self, other: &RangeTo<Idx>) -> bool
[src]
pub fn ne(&self, other: &RangeTo<Idx>) -> bool
[src]
impl<Idx> PartialEq<RangeToInclusive<Idx>> for RangeToInclusive<Idx> where
Idx: PartialEq<Idx>,
1.26.0[src]
Idx: PartialEq<Idx>,
pub fn eq(&self, other: &RangeToInclusive<Idx>) -> bool
[src]
pub fn ne(&self, other: &RangeToInclusive<Idx>) -> bool
[src]
impl<Ret> PartialEq<extern "C" fn() -> Ret> for extern "C" fn() -> Ret
1.4.0[src]
impl<Ret> PartialEq<fn() -> Ret> for fn() -> Ret
1.4.0[src]
impl<Ret> PartialEq<unsafe extern "C" fn() -> Ret> for unsafe extern "C" fn() -> Ret
1.4.0[src]
impl<Ret> PartialEq<unsafe fn() -> Ret> for unsafe fn() -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<extern "C" fn(A) -> Ret> for extern "C" fn(A) -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<extern "C" fn(A, ...) -> Ret> for extern "C" fn(A, ...) -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<fn(A) -> Ret> for fn(A) -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<unsafe extern "C" fn(A) -> Ret> for unsafe extern "C" fn(A) -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<unsafe extern "C" fn(A, ...) -> Ret> for unsafe extern "C" fn(A, ...) -> Ret
1.4.0[src]
impl<Ret, A> PartialEq<unsafe fn(A) -> Ret> for unsafe fn(A) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<extern "C" fn(A, B) -> Ret> for extern "C" fn(A, B) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<extern "C" fn(A, B, ...) -> Ret> for extern "C" fn(A, B, ...) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<fn(A, B) -> Ret> for fn(A, B) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<unsafe extern "C" fn(A, B) -> Ret> for unsafe extern "C" fn(A, B) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<unsafe extern "C" fn(A, B, ...) -> Ret> for unsafe extern "C" fn(A, B, ...) -> Ret
1.4.0[src]
impl<Ret, A, B> PartialEq<unsafe fn(A, B) -> Ret> for unsafe fn(A, B) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<extern "C" fn(A, B, C) -> Ret> for extern "C" fn(A, B, C) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<extern "C" fn(A, B, C, ...) -> Ret> for extern "C" fn(A, B, C, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<fn(A, B, C) -> Ret> for fn(A, B, C) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<unsafe extern "C" fn(A, B, C) -> Ret> for unsafe extern "C" fn(A, B, C) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<unsafe extern "C" fn(A, B, C, ...) -> Ret> for unsafe extern "C" fn(A, B, C, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C> PartialEq<unsafe fn(A, B, C) -> Ret> for unsafe fn(A, B, C) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<extern "C" fn(A, B, C, D) -> Ret> for extern "C" fn(A, B, C, D) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<extern "C" fn(A, B, C, D, ...) -> Ret> for extern "C" fn(A, B, C, D, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<fn(A, B, C, D) -> Ret> for fn(A, B, C, D) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<unsafe extern "C" fn(A, B, C, D) -> Ret> for unsafe extern "C" fn(A, B, C, D) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<unsafe extern "C" fn(A, B, C, D, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D> PartialEq<unsafe fn(A, B, C, D) -> Ret> for unsafe fn(A, B, C, D) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<extern "C" fn(A, B, C, D, E) -> Ret> for extern "C" fn(A, B, C, D, E) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<extern "C" fn(A, B, C, D, E, ...) -> Ret> for extern "C" fn(A, B, C, D, E, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<fn(A, B, C, D, E) -> Ret> for fn(A, B, C, D, E) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<unsafe extern "C" fn(A, B, C, D, E) -> Ret> for unsafe extern "C" fn(A, B, C, D, E) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E> PartialEq<unsafe fn(A, B, C, D, E) -> Ret> for unsafe fn(A, B, C, D, E) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<extern "C" fn(A, B, C, D, E, F) -> Ret> for extern "C" fn(A, B, C, D, E, F) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<extern "C" fn(A, B, C, D, E, F, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<fn(A, B, C, D, E, F) -> Ret> for fn(A, B, C, D, E, F) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F> PartialEq<unsafe fn(A, B, C, D, E, F) -> Ret> for unsafe fn(A, B, C, D, E, F) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<extern "C" fn(A, B, C, D, E, F, G) -> Ret> for extern "C" fn(A, B, C, D, E, F, G) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<fn(A, B, C, D, E, F, G) -> Ret> for fn(A, B, C, D, E, F, G) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G> PartialEq<unsafe fn(A, B, C, D, E, F, G) -> Ret> for unsafe fn(A, B, C, D, E, F, G) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<fn(A, B, C, D, E, F, G, H) -> Ret> for fn(A, B, C, D, E, F, G, H) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H> PartialEq<unsafe fn(A, B, C, D, E, F, G, H) -> Ret> for unsafe fn(A, B, C, D, E, F, G, H) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<fn(A, B, C, D, E, F, G, H, I) -> Ret> for fn(A, B, C, D, E, F, G, H, I) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I> PartialEq<unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret> for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<fn(A, B, C, D, E, F, G, H, I, J) -> Ret> for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
) -> bool
[src]
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J> PartialEq<unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret> for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret> for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
) -> bool
[src]
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
) -> bool
[src]
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> PartialEq<unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret> for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret> for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
) -> bool
[src]
&self,
other: &extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret> for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.4.0[src]
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
) -> bool
[src]
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret> for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
1.4.0[src]
pub fn eq(
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
) -> bool
[src]
&self,
other: &unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
) -> bool
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> PartialEq<unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret> for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.4.0[src]
impl<T> PartialEq<*const T> for *const T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> PartialEq<*mut T> for *mut T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> PartialEq<Bound<T>> for Bound<T> where
T: PartialEq<T>,
1.17.0[src]
T: PartialEq<T>,
impl<T> PartialEq<Option<T>> for Option<T> where
T: PartialEq<T>,
[src]
T: PartialEq<T>,
impl<T> PartialEq<Reverse<T>> for Reverse<T> where
T: PartialEq<T>,
1.19.0[src]
T: PartialEq<T>,
impl<T> PartialEq<Discriminant<T>> for Discriminant<T>
1.21.0[src]
pub fn eq(&self, rhs: &Discriminant<T>) -> bool
[src]
impl<T> PartialEq<ManuallyDrop<T>> for ManuallyDrop<T> where
T: PartialEq<T> + ?Sized,
1.20.0[src]
T: PartialEq<T> + ?Sized,
pub fn eq(&self, other: &ManuallyDrop<T>) -> bool
[src]
pub fn ne(&self, other: &ManuallyDrop<T>) -> bool
[src]
impl<T, E> PartialEq<Result<T, E>> for Result<T, E> where
E: PartialEq<E>,
T: PartialEq<T>,
[src]
E: PartialEq<E>,
T: PartialEq<T>,
pub fn eq(&self, other: &Result<T, E>) -> bool
[src]
pub fn ne(&self, other: &Result<T, E>) -> bool
[src]
impl<Y, R> PartialEq<GeneratorState<Y, R>> for GeneratorState<Y, R> where
R: PartialEq<R>,
Y: PartialEq<Y>,
[src]
R: PartialEq<R>,
Y: PartialEq<Y>,