Trait nom::lib::std::prelude::v1::rust_2015::PartialEq1.0.0[][src]

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

Trait for equality comparisons which are partial equivalence relations.

x.eq(y) can also be written x == y, and x.ne(y) can be written x != y. We use the easier-to-read infix notation in the remainder of this documentation.

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.

Implementations must ensure that eq and ne are consistent with each other:

  • a != b if and only if !(a == b) (ensured by the default implementation).

If PartialOrd or Ord are also implemented for Self and Rhs, their methods must also be consistent with PartialEq (see the documentation of those traits for the exact requirements). It’s easy to accidentally make them disagree by deriving some of the traits and manually implementing others.

The equality relation == must satisfy the following conditions (for all a, b, c of type A, B, C):

  • Symmetric: if A: PartialEq<B> and B: PartialEq<A>, then a == b implies b == a; and

  • Transitive: if A: PartialEq<B> and B: PartialEq<C> and A: PartialEq<C>, then a == b and b == c implies a == 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 derived on structs, two instances are equal if all fields are equal, and not equal if any fields are not equal. When derived on enums, each variant is equal to itself and not equal to the other variants.

How can I implement PartialEq?

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 BookFormats to be compared with Books.

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

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

Provided methods

This method tests for !=.

Implementations on Foreign Types

Panics

Panics if the value in either RefCell is currently borrowed.

Equality for two Rcs.

Two Rcs are equal if their inner values are equal, even if they are stored in different allocation.

If T also implements Eq (implying reflexivity of equality), two Rcs that point to the same allocation are always equal.

Examples
use std::rc::Rc;

let five = Rc::new(5);

assert!(five == Rc::new(5));

Inequality for two Rcs.

Two Rcs are unequal if their inner values are unequal.

If T also implements Eq (implying reflexivity of equality), two Rcs that point to the same allocation are never unequal.

Examples
use std::rc::Rc;

let five = Rc::new(5);

assert!(five != Rc::new(6));

Equality for two Arcs.

Two Arcs are equal if their inner values are equal, even if they are stored in different allocation.

If T also implements Eq (implying reflexivity of equality), two Arcs that point to the same allocation are always equal.

Examples
use std::sync::Arc;

let five = Arc::new(5);

assert!(five == Arc::new(5));

Inequality for two Arcs.

Two Arcs are unequal if their inner values are unequal.

If T also implements Eq (implying reflexivity of equality), two Arcs that point to the same value are never unequal.

Examples
use std::sync::Arc;

let five = Arc::new(5);

assert!(five != Arc::new(6));

Implementors

impl<A> PartialEq<ArrayString<A>> for ArrayString<A> where
    A: Array<Item = u8> + Copy

impl<A> PartialEq<str> for ArrayString<A> where
    A: Array<Item = u8> + Copy

impl<A> PartialEq<ArrayString<A>> for str where
    A: Array<Item = u8> + Copy

impl<A: Array> PartialEq<ArrayVec<A>> for ArrayVec<A> where
    A::Item: PartialEq

impl<A: Array> PartialEq<[<A as Array>::Item]> for ArrayVec<A> where
    A::Item: PartialEq

impl<'a> PartialEq<Utf8Component<'a>> for Utf8Component<'a>

impl<'a> PartialEq<Utf8Prefix<'a>> for Utf8Prefix<'a>

impl<'a, 'b> PartialEq<Utf8Path> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, Utf8Path>

impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for Utf8Path

impl<'a, 'b> PartialEq<&'b Utf8Path> for Cow<'a, Utf8Path>

impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for &'b Utf8Path

impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, Utf8Path>

impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for Utf8PathBuf

impl<'a, 'b> PartialEq<Path> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for Path

impl<'a, 'b> PartialEq<&'a Path> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a Path

impl<'a, 'b> PartialEq<Cow<'a, Path>> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, Path>

impl<'a, 'b> PartialEq<PathBuf> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for PathBuf

impl<'a, 'b> PartialEq<Path> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for Path

impl<'a, 'b> PartialEq<&'a Path> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for &'a Path

impl<'a, 'b> PartialEq<Cow<'a, Path>> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, Path>

impl<'a, 'b> PartialEq<PathBuf> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for PathBuf

impl<'a, 'b> PartialEq<Path> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for Path

impl<'a, 'b> PartialEq<Cow<'b, Path>> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, Path>

impl<'a, 'b> PartialEq<PathBuf> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for PathBuf

impl<'a, 'b> PartialEq<str> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for str

impl<'a, 'b> PartialEq<&'a str> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a str

impl<'a, 'b> PartialEq<Cow<'a, str>> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, str>

impl<'a, 'b> PartialEq<String> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for String

impl<'a, 'b> PartialEq<str> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for str

impl<'a, 'b> PartialEq<&'a str> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for &'a str

impl<'a, 'b> PartialEq<Cow<'a, str>> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, str>

impl<'a, 'b> PartialEq<String> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for String

impl<'a, 'b> PartialEq<str> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for str

impl<'a, 'b> PartialEq<Cow<'b, str>> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, str>

impl<'a, 'b> PartialEq<String> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for String

impl<'a, 'b> PartialEq<OsStr> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for OsStr

impl<'a, 'b> PartialEq<&'a OsStr> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a OsStr

impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, OsStr>

impl<'a, 'b> PartialEq<OsString> for Utf8PathBuf

impl<'a, 'b> PartialEq<Utf8PathBuf> for OsString

impl<'a, 'b> PartialEq<OsStr> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for OsStr

impl<'a, 'b> PartialEq<&'a OsStr> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for &'a OsStr

impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, OsStr>

impl<'a, 'b> PartialEq<OsString> for Utf8Path

impl<'a, 'b> PartialEq<Utf8Path> for OsString

impl<'a, 'b> PartialEq<OsStr> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for OsStr

impl<'a, 'b> PartialEq<Cow<'b, OsStr>> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, OsStr>

impl<'a, 'b> PartialEq<OsString> for &'a Utf8Path

impl<'a, 'b> PartialEq<&'a Utf8Path> for OsString

impl PartialEq<Cfg> for Cfg

impl<'a> PartialEq<Token<'a>> for Token<'a>

impl PartialEq<Func> for Func

impl<'a> PartialEq<Predicate<'a>> for Predicate<'a>

impl PartialEq<Arch> for Arch

impl PartialEq<Os> for Os

impl PartialEq<Env> for Env

impl PartialEq<Utc> for Utc

impl<Tz: TimeZone, Tz2: TimeZone> PartialEq<Date<Tz2>> for Date<Tz>

impl<Tz: TimeZone, Tz2: TimeZone> PartialEq<DateTime<Tz2>> for DateTime<Tz>

impl PartialEq<Pad> for Pad

impl<'a> PartialEq<Item<'a>> for Item<'a>

impl<'help> PartialEq<App<'help>> for App<'help>

impl<'help> PartialEq<PossibleValue<'help>> for PossibleValue<'help>

impl<'help> PartialEq<Arg<'help>> for Arg<'help>

impl<'help> PartialEq<ArgGroup<'help>> for ArgGroup<'help>

impl<T: PartialEq> PartialEq<SendError<T>> for SendError<T>

impl<T: PartialEq> PartialEq<Steal<T>> for Steal<T>

impl<'g, T: ?Sized + Pointable> PartialEq<Shared<'g, T>> for Shared<'g, T>

impl<L: PartialEq, R: PartialEq> PartialEq<Either<L, R>> for Either<L, R>

impl PartialEq<DwUt> for DwUt

impl PartialEq<DwAt> for DwAt

impl PartialEq<DwDs> for DwDs

impl PartialEq<DwId> for DwId

impl PartialEq<DwCc> for DwCc

impl PartialEq<DwOp> for DwOp

impl<R: PartialEq + Reader> PartialEq<EhFrame<R>> for EhFrame<R>

impl<'bases, Section: PartialEq, R: PartialEq> PartialEq<CieOrFde<'bases, Section, R>> for CieOrFde<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 

impl<R: PartialEq, Offset: PartialEq> PartialEq<CommonInformationEntry<R, Offset>> for CommonInformationEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<'bases, Section: PartialEq, R: PartialEq> PartialEq<PartialFrameDescriptionEntry<'bases, Section, R>> for PartialFrameDescriptionEntry<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>,
    R::Offset: PartialEq,
    R::Offset: PartialEq,
    Section::Offset: PartialEq

impl<R: PartialEq, Offset: PartialEq> PartialEq<FrameDescriptionEntry<R, Offset>> for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq + Reader, A: PartialEq + UnwindContextStorage<R>> PartialEq<UnwindContext<R, A>> for UnwindContext<R, A> where
    A::Stack: PartialEq

impl<R: PartialEq + Reader> PartialEq<CfaRule<R>> for CfaRule<R>

impl<'input, Endian: PartialEq> PartialEq<EndianSlice<'input, Endian>> for EndianSlice<'input, Endian> where
    Endian: Endianity

impl<R: PartialEq, Offset: PartialEq> PartialEq<ArangeHeader<R, Offset>> for ArangeHeader<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<LineInstruction<R, Offset>> for LineInstruction<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<LineProgramHeader<R, Offset>> for LineProgramHeader<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<IncompleteLineProgram<R, Offset>> for IncompleteLineProgram<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<CompleteLineProgram<R, Offset>> for CompleteLineProgram<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<FileEntry<R, Offset>> for FileEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<Operation<R, Offset>> for Operation<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<Location<R, Offset>> for Location<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<Piece<R, Offset>> for Piece<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq + Reader> PartialEq<EvaluationResult<R>> for EvaluationResult<R> where
    R::Offset: PartialEq,
    R::Offset: PartialEq,
    R::Offset: PartialEq,
    R::Offset: PartialEq,
    R::Offset: PartialEq,
    R::Offset: PartialEq

impl<Offset: PartialEq> PartialEq<UnitType<Offset>> for UnitType<Offset> where
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<UnitHeader<R, Offset>> for UnitHeader<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<R: PartialEq, Offset: PartialEq> PartialEq<AttributeValue<R, Offset>> for AttributeValue<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset

impl<'g> PartialEq<BuildTargetId<'g>> for BuildTargetId<'g>

impl<'g> PartialEq<FeatureList<'g>> for FeatureList<'g>

impl<'g> PartialEq<FeatureId<'g>> for FeatureId<'g>

impl<'g> PartialEq<FeatureSet<'g>> for FeatureSet<'g>

impl<'g> PartialEq<PackageSource<'g>> for PackageSource<'g>

impl<'g> PartialEq<GitReq<'g>> for GitReq<'g>

impl<'g> PartialEq<PackageSet<'g>> for PackageSet<'g>

impl<K, V, S, A> PartialEq<HashMap<K, V, S, A>> for HashMap<K, V, S, A> where
    K: Eq + Hash,
    V: PartialEq,
    S: BuildHasher,
    A: Allocator + Clone

impl<T, S, A> PartialEq<HashSet<T, S, A>> for HashSet<T, S, A> where
    T: Eq + Hash,
    S: BuildHasher,
    A: Allocator + Clone

impl<T: PartialEq> PartialEq<Serde<T>> for Serde<T>

impl<K, V1, S1, V2, S2> PartialEq<IndexMap<K, V2, S2>> for IndexMap<K, V1, S1> where
    K: Hash + Eq,
    V1: PartialEq<V2>,
    S1: BuildHasher,
    S2: BuildHasher

impl<T, S1, S2> PartialEq<IndexSet<T, S2>> for IndexSet<T, S1> where
    T: Hash + Eq,
    S1: BuildHasher,
    S2: BuildHasher

impl<A: PartialEq, B: PartialEq> PartialEq<EitherOrBoth<A, B>> for EitherOrBoth<A, B>

impl<T: PartialEq> PartialEq<Position<T>> for Position<T>

impl<T: PartialEq> PartialEq<FoldWhile<T>> for FoldWhile<T>

impl PartialEq<tms> for tms

impl PartialEq<tm> for tm

impl PartialEq<spwd> for spwd

impl PartialEq<stat> for stat

impl PartialEq<user> for user

impl<'a> PartialEq<Metadata<'a>> for Metadata<'a>

impl<T: PartialEq> PartialEq<Nested<T>> for Nested<T>

impl<'g> PartialEq<RustTestSuite<'g>> for RustTestSuite<'g>

impl<'a> PartialEq<TestInstance<'a>> for TestInstance<'a>

impl PartialEq<Dir> for Dir

impl<'d> PartialEq<Iter<'d>> for Iter<'d>

impl PartialEq<Type> for Type

impl<'a> PartialEq<FcntlArg<'a>> for FcntlArg<'a>

impl PartialEq<Mark> for Mark

impl<'a> PartialEq<RecvMsg<'a>> for RecvMsg<'a>

impl<'a> PartialEq<CmsgIterator<'a>> for CmsgIterator<'a>

impl PartialEq<Mode> for Mode

impl<T: PartialEq> PartialEq<IoVec<T>> for IoVec<T>

impl PartialEq<Uid> for Uid

impl PartialEq<Gid> for Gid

impl PartialEq<Pid> for Pid

impl PartialEq<User> for User

impl<Section: PartialEq> PartialEq<SymbolFlags<Section>> for SymbolFlags<Section>

impl<E: PartialEq + Endian> PartialEq<U16Bytes<E>> for U16Bytes<E>

impl<E: PartialEq + Endian> PartialEq<U32Bytes<E>> for U32Bytes<E>

impl<E: PartialEq + Endian> PartialEq<U64Bytes<E>> for U64Bytes<E>

impl<E: PartialEq + Endian> PartialEq<I16Bytes<E>> for I16Bytes<E>

impl<E: PartialEq + Endian> PartialEq<I32Bytes<E>> for I32Bytes<E>

impl<E: PartialEq + Endian> PartialEq<I64Bytes<E>> for I64Bytes<E>

impl<'data> PartialEq<Bytes<'data>> for Bytes<'data>

impl<'data> PartialEq<SymbolMapName<'data>> for SymbolMapName<'data>

impl<'data> PartialEq<ObjectMapEntry<'data>> for ObjectMapEntry<'data>

impl<'data> PartialEq<Import<'data>> for Import<'data>

impl<'data> PartialEq<Export<'data>> for Export<'data>

impl<'data> PartialEq<CodeView<'data>> for CodeView<'data>

impl<'data> PartialEq<CompressedData<'data>> for CompressedData<'data>

impl<T: PartialEq> PartialEq<OnceCell<T>> for OnceCell<T>

impl<T: PartialEq> PartialEq<OnceCell<T>> for OnceCell<T>

impl PartialEq<&'_ RawOsStr> for String

impl PartialEq<&'_ str> for RawOsString

impl PartialEq<Rgb> for Rgb

impl PartialEq<Time> for Time

impl<N: PartialEq, E: PartialEq> PartialEq<Element<N, E>> for Element<N, E>

impl<Ix: PartialEq> PartialEq<EdgeIndex<Ix>> for EdgeIndex<Ix> where
    Ix: IndexType

impl<'a, E: PartialEq, Ix: PartialEq + IndexType> PartialEq<EdgeReference<'a, E, Ix>> for EdgeReference<'a, E, Ix>

impl<N: PartialEq> PartialEq<Cycle<N>> for Cycle<N>

impl<Ix: PartialEq> PartialEq<NodeIndex<Ix>> for NodeIndex<Ix>

impl<Ix: PartialEq> PartialEq<EdgeIndex<Ix>> for EdgeIndex<Ix>

impl<'a, E, Ix: IndexType> PartialEq<EdgeReference<'a, E, Ix>> for EdgeReference<'a, E, Ix> where
    E: PartialEq

impl<T> PartialEq<T> for Ident where
    T: ?Sized + AsRef<str>, 

impl<'a> PartialEq<Attribute<'a>> for Attribute<'a>

impl<'t> PartialEq<Match<'t>> for Match<'t>

impl<'t> PartialEq<Match<'t>> for Match<'t>

impl PartialEq<Span> for Span

impl PartialEq<Ast> for Ast

impl PartialEq<Flag> for Flag

impl PartialEq<Hir> for Hir

impl PartialEq<Op> for Op

impl<'a> PartialEq<Unexpected<'a>> for Unexpected<'a>

impl PartialEq<str> for Value

impl<'a> PartialEq<&'a str> for Value

impl PartialEq<Value> for str

impl<'a> PartialEq<Value> for &'a str

impl PartialEq<i8> for Value

impl PartialEq<Value> for i8

impl<'a> PartialEq<i8> for &'a Value

impl<'a> PartialEq<i8> for &'a mut Value

impl PartialEq<i16> for Value

impl PartialEq<Value> for i16

impl<'a> PartialEq<i16> for &'a Value

impl<'a> PartialEq<i16> for &'a mut Value

impl PartialEq<i32> for Value

impl PartialEq<Value> for i32

impl<'a> PartialEq<i32> for &'a Value

impl<'a> PartialEq<i32> for &'a mut Value

impl PartialEq<i64> for Value

impl PartialEq<Value> for i64

impl<'a> PartialEq<i64> for &'a Value

impl<'a> PartialEq<i64> for &'a mut Value

impl<'a> PartialEq<isize> for &'a Value

impl<'a> PartialEq<isize> for &'a mut Value

impl PartialEq<u8> for Value

impl PartialEq<Value> for u8

impl<'a> PartialEq<u8> for &'a Value

impl<'a> PartialEq<u8> for &'a mut Value

impl PartialEq<u16> for Value

impl PartialEq<Value> for u16

impl<'a> PartialEq<u16> for &'a Value

impl<'a> PartialEq<u16> for &'a mut Value

impl PartialEq<u32> for Value

impl PartialEq<Value> for u32

impl<'a> PartialEq<u32> for &'a Value

impl<'a> PartialEq<u32> for &'a mut Value

impl PartialEq<u64> for Value

impl PartialEq<Value> for u64

impl<'a> PartialEq<u64> for &'a Value

impl<'a> PartialEq<u64> for &'a mut Value

impl<'a> PartialEq<usize> for &'a Value

impl<'a> PartialEq<usize> for &'a mut Value

impl PartialEq<f32> for Value

impl PartialEq<Value> for f32

impl<'a> PartialEq<f32> for &'a Value

impl<'a> PartialEq<f32> for &'a mut Value

impl PartialEq<f64> for Value

impl PartialEq<Value> for f64

impl<'a> PartialEq<f64> for &'a Value

impl<'a> PartialEq<f64> for &'a mut Value

impl PartialEq<bool> for Value

impl PartialEq<Value> for bool

impl<'a> PartialEq<bool> for &'a Value

impl<'a> PartialEq<bool> for &'a mut Value

impl<A: Array, B: Array> PartialEq<SmallVec<B>> for SmallVec<A> where
    A::Item: PartialEq<B::Item>, 

impl<'a> PartialEq<Cursor<'a>> for Cursor<'a>

impl PartialEq<Size> for Size

impl<'a> PartialEq<Word<'a>> for Word<'a>

impl PartialEq<Tm> for Tm

impl<T: PartialEq> PartialEq<Spanned<T>> for Spanned<T>