Trait std::cmp::PartialEq [] [src]

pub trait PartialEq<Rhs = Self> where Rhs: ?Sized {
    fn eq(&self, other: &Rhs) -> bool;

    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`Eq`.

Formally, the equality must be (for all a`a,`, b`band` and c`c`):

Note that these requirements mean that the trait itself must be implemented symmetrically and transitively: if T: PartialEq<U> and U: PartialEq<V> then U: PartialEq<T> and T: PartialEq<V>.

PartialEq only requires the eq`eqmethod to be implemented;neis defined in terms of it by default. Any manual implementation ofne*must* respect the rule thateqis a strict inverse ofne; that is,!(a == b)if and only ifa != b`.

Required Methods

fn eq(&self, other: &Rhs) -> bool

This method tests for self`selfand` and other`othervalues to be equal, and is used by==`.

Provided Methods

fn ne(&self, other: &Rhs) -> bool

This method tests for !=`!=`.

Implementors