Trait otter::prelude::cmp::PartialEq 1.0.0[−][src]
pub trait PartialEq<Rhs = Self> where
Rhs: ?Sized, { #[must_use] fn eq(&self, other: &Rhs) -> bool; #[must_use] fn ne(&self, other: &Rhs) -> bool { ... } }
Expand description
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
Provided methods
Implementations on Foreign Types
impl<Idx> PartialEq<RangeToInclusive<Idx>> for RangeToInclusive<Idx> where
Idx: PartialEq<Idx>,
[src]
impl<Idx> PartialEq<RangeToInclusive<Idx>> for RangeToInclusive<Idx> where
Idx: PartialEq<Idx>,
[src]impl<Y, R> PartialEq<GeneratorState<Y, R>> for GeneratorState<Y, R> where
Y: PartialEq<Y>,
R: PartialEq<R>,
[src]
impl<Y, R> PartialEq<GeneratorState<Y, R>> for GeneratorState<Y, R> where
Y: PartialEq<Y>,
R: PartialEq<R>,
[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>,
K: PartialEq<K>,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
L: PartialEq<L> + ?Sized,
J: PartialEq<J>,
[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>,
K: PartialEq<K>,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
L: PartialEq<L> + ?Sized,
J: PartialEq<J>,
[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>,
K: PartialEq<K> + ?Sized,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
J: PartialEq<J>,
[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>,
K: PartialEq<K> + ?Sized,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
J: PartialEq<J>,
[src]impl<B, C> PartialEq<ControlFlow<B, C>> for ControlFlow<B, C> where
C: PartialEq<C>,
B: PartialEq<B>,
[src]
impl<B, C> PartialEq<ControlFlow<B, C>> for ControlFlow<B, C> where
C: PartialEq<C>,
B: PartialEq<B>,
[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>,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
J: PartialEq<J> + ?Sized,
[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>,
E: PartialEq<E>,
F: PartialEq<F>,
I: PartialEq<I>,
A: PartialEq<A>,
B: PartialEq<B>,
G: PartialEq<G>,
H: PartialEq<H>,
D: PartialEq<D>,
J: PartialEq<J> + ?Sized,
[src]Equality for two Rc
s.
Two Rc
s 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 Rc
s 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 Rc
s.
Two Rc
s are unequal if their inner values are unequal.
If T
also implements Eq
(implying reflexivity of equality),
two Rc
s that point to the same allocation are
never unequal.
Examples
use std::rc::Rc; let five = Rc::new(5); assert!(five != Rc::new(6));
Two public keys are equivalent if their data sections are equivalent, ignoring their comment section.
impl<Sep, T> PartialEq<StringWithSeparator<Sep, T>> for StringWithSeparator<Sep, T> where
T: PartialEq<T>,
Sep: PartialEq<Sep>,
[src]
impl<Sep, T> PartialEq<StringWithSeparator<Sep, T>> for StringWithSeparator<Sep, T> where
T: PartialEq<T>,
Sep: PartialEq<Sep>,
[src]impl PartialEq<Literals> for Literals
impl PartialEq<Literals> for Literals
impl PartialEq<ClassBytes> for ClassBytes
impl PartialEq<ClassBytes> for ClassBytes
impl PartialEq<RepetitionRange> for RepetitionRange
impl PartialEq<RepetitionRange> for RepetitionRange
impl PartialEq<Ast> for Ast
impl PartialEq<Ast> for Ast
impl PartialEq<ClassBracketed> for ClassBracketed
impl PartialEq<ClassBracketed> for ClassBracketed
impl PartialEq<ClassSetBinaryOp> for ClassSetBinaryOp
impl PartialEq<ClassSetBinaryOp> for ClassSetBinaryOp
impl PartialEq<ClassUnicodeOpKind> for ClassUnicodeOpKind
impl PartialEq<ClassUnicodeOpKind> for ClassUnicodeOpKind
impl PartialEq<ClassPerl> for ClassPerl
impl PartialEq<ClassPerl> for ClassPerl
impl PartialEq<ClassUnicodeKind> for ClassUnicodeKind
impl PartialEq<ClassUnicodeKind> for ClassUnicodeKind
impl PartialEq<ClassSetBinaryOpKind> for ClassSetBinaryOpKind
impl PartialEq<ClassSetBinaryOpKind> for ClassSetBinaryOpKind
impl PartialEq<ClassSetRange> for ClassSetRange
impl PartialEq<ClassSetRange> for ClassSetRange
impl PartialEq<SpecialLiteralKind> for SpecialLiteralKind
impl PartialEq<SpecialLiteralKind> for SpecialLiteralKind
impl PartialEq<ClassSetItem> for ClassSetItem
impl PartialEq<ClassSetItem> for ClassSetItem
impl PartialEq<Flags> for Flags
impl PartialEq<Flags> for Flags
impl PartialEq<Group> for Group
impl PartialEq<Group> for Group
impl PartialEq<WithComments> for WithComments
impl PartialEq<WithComments> for WithComments
impl PartialEq<HirKind> for HirKind
impl PartialEq<HirKind> for HirKind
impl PartialEq<FlagsItem> for FlagsItem
impl PartialEq<FlagsItem> for FlagsItem
impl PartialEq<FlagsItemKind> for FlagsItemKind
impl PartialEq<FlagsItemKind> for FlagsItemKind
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<Literal> for Literal
impl PartialEq<Literal> for Literal
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<ErrorKind> for ErrorKind
impl PartialEq<ErrorKind> for ErrorKind
impl PartialEq<Hir> for Hir
impl PartialEq<Hir> for Hir
impl PartialEq<Utf8Range> for Utf8Range
impl PartialEq<Utf8Range> for Utf8Range
impl PartialEq<ClassUnicode> for ClassUnicode
impl PartialEq<ClassUnicode> for ClassUnicode
impl PartialEq<GroupKind> for GroupKind
impl PartialEq<GroupKind> for GroupKind
impl PartialEq<Comment> for Comment
impl PartialEq<Comment> for Comment
impl PartialEq<RepetitionKind> for RepetitionKind
impl PartialEq<RepetitionKind> for RepetitionKind
impl PartialEq<Repetition> for Repetition
impl PartialEq<Repetition> for Repetition
impl PartialEq<Repetition> for Repetition
impl PartialEq<Repetition> for Repetition
impl PartialEq<Assertion> for Assertion
impl PartialEq<Assertion> for Assertion
impl PartialEq<LiteralKind> for LiteralKind
impl PartialEq<LiteralKind> for LiteralKind
impl PartialEq<ClassSetUnion> for ClassSetUnion
impl PartialEq<ClassSetUnion> for ClassSetUnion
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<GroupKind> for GroupKind
impl PartialEq<GroupKind> for GroupKind
impl PartialEq<ClassAscii> for ClassAscii
impl PartialEq<ClassAscii> for ClassAscii
impl PartialEq<Literal> for Literal
impl PartialEq<Literal> for Literal
impl PartialEq<ClassUnicodeRange> for ClassUnicodeRange
impl PartialEq<ClassUnicodeRange> for ClassUnicodeRange
impl PartialEq<RepetitionKind> for RepetitionKind
impl PartialEq<RepetitionKind> for RepetitionKind
impl PartialEq<Group> for Group
impl PartialEq<Group> for Group
impl PartialEq<RepetitionRange> for RepetitionRange
impl PartialEq<RepetitionRange> for RepetitionRange
impl PartialEq<Utf8Sequence> for Utf8Sequence
impl PartialEq<Utf8Sequence> for Utf8Sequence
impl PartialEq<Class> for Class
impl PartialEq<Class> for Class
impl PartialEq<Alternation> for Alternation
impl PartialEq<Alternation> for Alternation
impl PartialEq<ClassUnicode> for ClassUnicode
impl PartialEq<ClassUnicode> for ClassUnicode
impl PartialEq<ClassBytesRange> for ClassBytesRange
impl PartialEq<ClassBytesRange> for ClassBytesRange
impl PartialEq<RepetitionOp> for RepetitionOp
impl PartialEq<RepetitionOp> for RepetitionOp
impl PartialEq<ClassSet> for ClassSet
impl PartialEq<ClassSet> for ClassSet
impl PartialEq<Concat> for Concat
impl PartialEq<Concat> for Concat
impl PartialEq<Position> for Position
impl PartialEq<Position> for Position
impl PartialEq<Class> for Class
impl PartialEq<Class> for Class
impl PartialEq<SetFlags> for SetFlags
impl PartialEq<SetFlags> for SetFlags
impl PartialEq<CaptureName> for CaptureName
impl PartialEq<CaptureName> for CaptureName
impl PartialEq<Span> for Span
impl PartialEq<Span> for Span
impl PartialEq<Match> for Match
impl PartialEq<Match> for Match
impl PartialEq<Timestamp> for Timestamp
impl PartialEq<Timestamp> for Timestamp
impl PartialEq<Duration> for Duration
impl PartialEq<Duration> for Duration
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<ParseColorError> for ParseColorError
impl PartialEq<ParseColorError> for ParseColorError
impl PartialEq<Color> for Color
impl PartialEq<Color> for Color
impl PartialEq<ColorSpec> for ColorSpec
impl PartialEq<ColorSpec> for ColorSpec
impl PartialEq<DwEnd> for DwEnd
impl PartialEq<DwEnd> for DwEnd
impl<'bases, Section, R> PartialEq<PartialFrameDescriptionEntry<'bases, Section, R>> for PartialFrameDescriptionEntry<'bases, Section, R> where
R: PartialEq<R> + Reader,
Section: PartialEq<Section> + UnwindSection<R>,
<R as Reader>::Offset: PartialEq<<R as Reader>::Offset>,
<Section as UnwindSection<R>>::Offset: PartialEq<<Section as UnwindSection<R>>::Offset>,
impl<'bases, Section, R> PartialEq<PartialFrameDescriptionEntry<'bases, Section, R>> for PartialFrameDescriptionEntry<'bases, Section, R> where
R: PartialEq<R> + Reader,
Section: PartialEq<Section> + UnwindSection<R>,
<R as Reader>::Offset: PartialEq<<R as Reader>::Offset>,
<Section as UnwindSection<R>>::Offset: PartialEq<<Section as UnwindSection<R>>::Offset>,
impl PartialEq<DwDsc> for DwDsc
impl PartialEq<DwDsc> for DwDsc
impl PartialEq<FileEntryFormat> for FileEntryFormat
impl PartialEq<FileEntryFormat> for FileEntryFormat
impl PartialEq<AttributeSpecification> for AttributeSpecification
impl PartialEq<AttributeSpecification> for AttributeSpecification
impl PartialEq<DwUt> for DwUt
impl PartialEq<DwUt> for DwUt
impl PartialEq<DwLne> for DwLne
impl PartialEq<DwLne> for DwLne
impl PartialEq<LineRow> for LineRow
impl PartialEq<LineRow> for LineRow
impl PartialEq<DwTag> for DwTag
impl PartialEq<DwTag> for DwTag
impl PartialEq<Encoding> for Encoding
impl PartialEq<Encoding> for Encoding
impl PartialEq<LineEncoding> for LineEncoding
impl PartialEq<LineEncoding> for LineEncoding
impl PartialEq<DwVirtuality> for DwVirtuality
impl PartialEq<DwVirtuality> for DwVirtuality
impl PartialEq<DwOp> for DwOp
impl PartialEq<DwOp> for DwOp
impl PartialEq<DwoId> for DwoId
impl PartialEq<DwoId> for DwoId
impl PartialEq<DwEhPe> for DwEhPe
impl PartialEq<DwEhPe> for DwEhPe
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<DwLle> for DwLle
impl PartialEq<DwLle> for DwLle
impl PartialEq<Register> for Register
impl PartialEq<Register> for Register
impl PartialEq<DwLnct> for DwLnct
impl PartialEq<DwLnct> for DwLnct
impl PartialEq<Value> for Value
impl PartialEq<Value> for Value
impl PartialEq<DwRle> for DwRle
impl PartialEq<DwRle> for DwRle
impl PartialEq<DwAt> for DwAt
impl PartialEq<DwAt> for DwAt
impl PartialEq<DwOrd> for DwOrd
impl PartialEq<DwOrd> for DwOrd
impl PartialEq<DwAddr> for DwAddr
impl PartialEq<DwAddr> for DwAddr
impl PartialEq<DwInl> for DwInl
impl PartialEq<DwInl> for DwInl
impl PartialEq<DwChildren> for DwChildren
impl PartialEq<DwChildren> for DwChildren
impl PartialEq<DwId> for DwId
impl PartialEq<DwId> for DwId
impl PartialEq<ArangeEntry> for ArangeEntry
impl PartialEq<ArangeEntry> for ArangeEntry
impl PartialEq<ColumnType> for ColumnType
impl PartialEq<ColumnType> for ColumnType
impl PartialEq<DwMacro> for DwMacro
impl PartialEq<DwMacro> for DwMacro
impl PartialEq<DwVis> for DwVis
impl PartialEq<DwVis> for DwVis
impl PartialEq<ReaderOffsetId> for ReaderOffsetId
impl PartialEq<ReaderOffsetId> for ReaderOffsetId
impl PartialEq<DwCc> for DwCc
impl PartialEq<DwCc> for DwCc
impl PartialEq<Pointer> for Pointer
impl PartialEq<Pointer> for Pointer
impl PartialEq<DebugTypeSignature> for DebugTypeSignature
impl PartialEq<DebugTypeSignature> for DebugTypeSignature
impl PartialEq<DwAte> for DwAte
impl PartialEq<DwAte> for DwAte
impl PartialEq<DwDs> for DwDs
impl PartialEq<DwDs> for DwDs
impl PartialEq<Range> for Range
impl PartialEq<Range> for Range
impl PartialEq<DwAccess> for DwAccess
impl PartialEq<DwAccess> for DwAccess
impl PartialEq<Abbreviation> for Abbreviation
impl PartialEq<Abbreviation> for Abbreviation
impl PartialEq<BaseAddresses> for BaseAddresses
impl PartialEq<BaseAddresses> for BaseAddresses
impl PartialEq<DwForm> for DwForm
impl PartialEq<DwForm> for DwForm
impl PartialEq<Augmentation> for Augmentation
impl PartialEq<Augmentation> for Augmentation
impl PartialEq<DwCfa> for DwCfa
impl PartialEq<DwCfa> for DwCfa
impl PartialEq<DwLang> for DwLang
impl PartialEq<DwLang> for DwLang
impl PartialEq<DwDefaulted> for DwDefaulted
impl PartialEq<DwDefaulted> for DwDefaulted
impl PartialEq<DwIdx> for DwIdx
impl PartialEq<DwIdx> for DwIdx
impl PartialEq<DwLns> for DwLns
impl PartialEq<DwLns> for DwLns
impl PartialEq<SectionBaseAddresses> for SectionBaseAddresses
impl PartialEq<SectionBaseAddresses> for SectionBaseAddresses
impl PartialEq<CompressionFormat> for CompressionFormat
impl PartialEq<CompressionFormat> for CompressionFormat
impl PartialEq<RelocationTarget> for RelocationTarget
impl PartialEq<RelocationTarget> for RelocationTarget
impl PartialEq<SectionFlags> for SectionFlags
impl PartialEq<SectionFlags> for SectionFlags
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<SectionKind> for SectionKind
impl PartialEq<SectionKind> for SectionKind
impl PartialEq<RelocationEncoding> for RelocationEncoding
impl PartialEq<RelocationEncoding> for RelocationEncoding
impl PartialEq<SectionIndex> for SectionIndex
impl PartialEq<SectionIndex> for SectionIndex
impl PartialEq<CompressedFileRange> for CompressedFileRange
impl PartialEq<CompressedFileRange> for CompressedFileRange
impl<'data> PartialEq<Export<'data>> for Export<'data>
impl<'data> PartialEq<Export<'data>> for Export<'data>
impl<'data> PartialEq<CodeView<'data>> for CodeView<'data>
impl<'data> PartialEq<CodeView<'data>> for CodeView<'data>
impl<'data> PartialEq<Import<'data>> for Import<'data>
impl<'data> PartialEq<Import<'data>> for Import<'data>
impl<'data> PartialEq<CompressedData<'data>> for CompressedData<'data>
impl<'data> PartialEq<CompressedData<'data>> for CompressedData<'data>
impl<'data> PartialEq<SymbolMapName<'data>> for SymbolMapName<'data>
impl<'data> PartialEq<SymbolMapName<'data>> for SymbolMapName<'data>
impl PartialEq<SymbolIndex> for SymbolIndex
impl PartialEq<SymbolIndex> for SymbolIndex
impl<'data> PartialEq<Bytes<'data>> for Bytes<'data>
impl<'data> PartialEq<Bytes<'data>> for Bytes<'data>
impl<'data> PartialEq<ObjectMapEntry<'data>> for ObjectMapEntry<'data>
impl<'data> PartialEq<ObjectMapEntry<'data>> for ObjectMapEntry<'data>
impl PartialEq<RelocationKind> for RelocationKind
impl PartialEq<RelocationKind> for RelocationKind
impl PartialEq<SymbolSection> for SymbolSection
impl PartialEq<SymbolSection> for SymbolSection
impl PartialEq<FileFlags> for FileFlags
impl PartialEq<FileFlags> for FileFlags
impl PartialEq<CompressionStrategy> for CompressionStrategy
impl PartialEq<CompressionStrategy> for CompressionStrategy
impl PartialEq<CompressionLevel> for CompressionLevel
impl PartialEq<CompressionLevel> for CompressionLevel
impl PartialEq<StreamResult> for StreamResult
impl PartialEq<StreamResult> for StreamResult
impl PartialEq<FileTime> for FileTime
impl PartialEq<FileTime> for FileTime
impl PartialEq<EventMask> for EventMask
impl PartialEq<EventMask> for EventMask
impl PartialEq<WatchDescriptor> for WatchDescriptor
impl PartialEq<WatchDescriptor> for WatchDescriptor
impl PartialEq<WatchMask> for WatchMask
impl PartialEq<WatchMask> for WatchMask
impl PartialEq<Handle> for Handle
impl PartialEq<Handle> for Handle
impl PartialEq<UnparkResult> for UnparkResult
impl PartialEq<UnparkResult> for UnparkResult
impl PartialEq<ParkResult> for ParkResult
impl PartialEq<ParkResult> for ParkResult
impl PartialEq<UnparkToken> for UnparkToken
impl PartialEq<UnparkToken> for UnparkToken
impl PartialEq<ParkToken> for ParkToken
impl PartialEq<ParkToken> for ParkToken
impl<K, V> PartialEq<SecondaryMap<K, V>> for SecondaryMap<K, V> where
K: Key,
V: PartialEq<V>,
[src]
impl<K, V> PartialEq<SecondaryMap<K, V>> for SecondaryMap<K, V> where
K: Key,
V: PartialEq<V>,
[src]impl<'text> PartialEq<BidiInfo<'text>> for BidiInfo<'text>
impl<'text> PartialEq<BidiInfo<'text>> for BidiInfo<'text>
impl PartialEq<ParagraphInfo> for ParagraphInfo
impl PartialEq<ParagraphInfo> for ParagraphInfo
Used for matching levels in conformance tests
Used for matching levels in conformance tests
impl PartialEq<Level> for Level
impl PartialEq<Level> for Level
impl<'text> PartialEq<InitialInfo<'text>> for InitialInfo<'text>
impl<'text> PartialEq<InitialInfo<'text>> for InitialInfo<'text>
impl<P, Container> PartialEq<ImageBuffer<P, Container>> for ImageBuffer<P, Container> where
P: PartialEq<P> + Pixel,
Container: PartialEq<Container>,
[src]
impl<P, Container> PartialEq<ImageBuffer<P, Container>> for ImageBuffer<P, Container> where
P: PartialEq<P> + Pixel,
Container: PartialEq<Container>,
[src]impl PartialEq<ImageInfo> for ImageInfo
impl PartialEq<ImageInfo> for ImageInfo
impl PartialEq<OutputInfo> for OutputInfo
impl PartialEq<OutputInfo> for OutputInfo
impl PartialEq<Transformations> for Transformations
impl PartialEq<Transformations> for Transformations
impl PartialEq<CompressionOptions> for CompressionOptions
impl PartialEq<CompressionOptions> for CompressionOptions
impl PartialEq<CompressionLevel> for CompressionLevel
impl PartialEq<CompressionLevel> for CompressionLevel
impl PartialEq<StreamResult> for StreamResult
impl PartialEq<StreamResult> for StreamResult
impl PartialEq<CompressionStrategy> for CompressionStrategy
impl PartialEq<CompressionStrategy> for CompressionStrategy
impl PartialEq<GraphemeIncomplete> for GraphemeIncomplete
impl PartialEq<GraphemeIncomplete> for GraphemeIncomplete
impl PartialEq<GraphemeClusterBreak> for GraphemeClusterBreak
impl PartialEq<GraphemeClusterBreak> for GraphemeClusterBreak
impl PartialEq<UnicodeVersion> for UnicodeVersion
impl PartialEq<UnicodeVersion> for UnicodeVersion
impl PartialEq<FileType> for FileType
impl PartialEq<FileType> for FileType
impl PartialEq<FileTypeDef> for FileTypeDef
impl PartialEq<FileTypeDef> for FileTypeDef
impl PartialEq<ErrorKind> for ErrorKind
impl PartialEq<ErrorKind> for ErrorKind
impl PartialEq<Error> for Error
impl PartialEq<Error> for Error
impl PartialEq<Utf8Error> for Utf8Error
impl PartialEq<Utf8Error> for Utf8Error
impl PartialEq<FromUtf8Error> for FromUtf8Error
impl PartialEq<FromUtf8Error> for FromUtf8Error
URLs compare like their serialization.
impl PartialEq<GraphemeIncomplete> for GraphemeIncomplete
impl PartialEq<GraphemeIncomplete> for GraphemeIncomplete
impl PartialEq<GraphemeClusterBreak> for GraphemeClusterBreak
impl PartialEq<GraphemeClusterBreak> for GraphemeClusterBreak
impl PartialEq<UnicodeVersion> for UnicodeVersion
impl PartialEq<UnicodeVersion> for UnicodeVersion
Implementors
impl PartialEq<DecodeErrKind> for DecodeErrKind
impl PartialEq<DecodeErrKind> for DecodeErrKind
pub fn eq(&self, other: &DecodeErrKind) -> bool
URLs compare like their serialization.
impl<'a, 'b, A, B, I> PartialEq<&'b mut [B]> for IndexSlice<I, [A]> where
I: Idx,
A: PartialEq<B>,
[src]
impl<'a, 'b, A, B, I> PartialEq<&'b mut [B]> for IndexSlice<I, [A]> where
I: Idx,
A: PartialEq<B>,
[src]impl<A, B> PartialEq<EitherOrBoth<A, B>> for EitherOrBoth<A, B> where
A: PartialEq<A>,
B: PartialEq<B>,
[src]
impl<A, B> PartialEq<EitherOrBoth<A, B>> for EitherOrBoth<A, B> where
A: PartialEq<A>,
B: PartialEq<B>,
[src]impl<I, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]> where
I: Idx,
A: PartialEq<B>,
[src]
impl<I, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]> where
I: Idx,
A: PartialEq<B>,
[src]impl<K, V, S> PartialEq<SparseSecondaryMap<K, V, S>> for SparseSecondaryMap<K, V, S> where
K: Key,
V: PartialEq<V>,
S: BuildHasher,
[src]
impl<K, V, S> PartialEq<SparseSecondaryMap<K, V, S>> for SparseSecondaryMap<K, V, S> where
K: Key,
V: PartialEq<V>,
S: BuildHasher,
[src]Equality for two Arc
s.
Two Arc
s 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 Arc
s 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 Arc
s.
Two Arc
s are unequal if their inner values are unequal.
If T
also implements Eq
(implying reflexivity of equality),
two Arc
s that point to the same value are never unequal.
Examples
use std::sync::Arc; let five = Arc::new(5); assert!(five != Arc::new(6));