Trait origin_studio::std::cmp::PartialEq

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

    // Provided method
    fn ne(&self, other: &Rhs) -> bool { ... }
}
Expand description

Trait for equality comparisons.

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. Formally speaking, when Rhs == Self, this trait corresponds to a partial equivalence relation.

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

  • a != b if and only if !(a == b).

The default implementation of ne provides this consistency and is almost always sufficient. It should not be overridden without very good reason.

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, two instances are equal if they are the same variant and all fields are equal.

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§

source

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

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

Provided Methods§

source

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Implementors§

source§

impl PartialEq<AsciiChar> for AsciiChar

source§

impl PartialEq<TryReserveErrorKind> for TryReserveErrorKind

1.34.0 · source§

impl PartialEq<Infallible> for Infallible

source§

impl PartialEq<VarError> for VarError

1.28.0 · source§

impl PartialEq<Alignment> for origin_studio::std::fmt::Alignment

1.7.0 · source§

impl PartialEq<IpAddr> for IpAddr

1.16.0 · source§

impl PartialEq<IpAddr> for Ipv4Addr

1.16.0 · source§

impl PartialEq<IpAddr> for Ipv6Addr

source§

impl PartialEq<Ipv6MulticastScope> for Ipv6MulticastScope

source§

impl PartialEq<SocketAddr> for SocketAddr

source§

impl PartialEq<FpCategory> for FpCategory

1.55.0 · source§

impl PartialEq<IntErrorKind> for IntErrorKind

source§

impl PartialEq<Which> for Which

source§

impl PartialEq<SearchStep> for SearchStep

source§

impl PartialEq<Ordering> for origin_studio::std::sync::atomic::Ordering

source§

impl PartialEq<Ordering> for origin_studio::std::cmp::Ordering

source§

impl PartialEq<Advice> for rustix::backend::fs::types::Advice

source§

impl PartialEq<FileType> for FileType

source§

impl PartialEq<FlockOperation> for FlockOperation

source§

impl PartialEq<Advice> for rustix::backend::mm::types::Advice

source§

impl PartialEq<MembarrierCommand> for MembarrierCommand

source§

impl PartialEq<Resource> for Resource

source§

impl PartialEq<FutexOperation> for FutexOperation

source§

impl PartialEq<TimerfdClockId> for TimerfdClockId

source§

impl PartialEq<ClockId> for ClockId

source§

impl PartialEq<SeekFrom> for SeekFrom

source§

impl PartialEq<Direction> for Direction

source§

impl PartialEq<DumpableBehavior> for DumpableBehavior

source§

impl PartialEq<EndianMode> for EndianMode

source§

impl PartialEq<FloatingPointMode> for FloatingPointMode

source§

impl PartialEq<MachineCheckMemoryCorruptionKillPolicy> for MachineCheckMemoryCorruptionKillPolicy

source§

impl PartialEq<PTracer> for PTracer

source§

impl PartialEq<SpeculationFeature> for SpeculationFeature

source§

impl PartialEq<TimeStampCounterReadability> for TimeStampCounterReadability

source§

impl PartialEq<TimingMethod> for TimingMethod

source§

impl PartialEq<VirtualMemoryMapAddress> for VirtualMemoryMapAddress

source§

impl PartialEq<Signal> for Signal

source§

impl PartialEq<Capability> for Capability

source§

impl PartialEq<CoreSchedulingScope> for CoreSchedulingScope

source§

impl PartialEq<SecureComputingMode> for SecureComputingMode

source§

impl PartialEq<SysCallUserDispatchFastSwitch> for SysCallUserDispatchFastSwitch

source§

impl PartialEq<LinkNameSpaceType> for LinkNameSpaceType

source§

impl PartialEq<bool> for bool

source§

impl PartialEq<char> for char

source§

impl PartialEq<f32> for f32

source§

impl PartialEq<f64> for f64

source§

impl PartialEq<i8> for i8

source§

impl PartialEq<i16> for i16

source§

impl PartialEq<i32> for i32

source§

impl PartialEq<i64> for i64

source§

impl PartialEq<i128> for i128

source§

impl PartialEq<isize> for isize

source§

impl PartialEq<!> for !

source§

impl PartialEq<str> for str

source§

impl PartialEq<u8> for u8

source§

impl PartialEq<u16> for u16

source§

impl PartialEq<u32> for u32

source§

impl PartialEq<u64> for u64

source§

impl PartialEq<u128> for u128

source§

impl PartialEq<()> for ()

source§

impl PartialEq<usize> for usize

source§

impl PartialEq<AllocError> for AllocError

1.28.0 · source§

impl PartialEq<Layout> for Layout

1.50.0 · source§

impl PartialEq<LayoutError> for LayoutError

source§

impl PartialEq<TypeId> for TypeId

1.27.0 · source§

impl PartialEq<CpuidResult> for CpuidResult

1.34.0 · source§

impl PartialEq<CharTryFromError> for CharTryFromError

1.9.0 · source§

impl PartialEq<DecodeUtf16Error> for DecodeUtf16Error

1.20.0 · source§

impl PartialEq<ParseCharError> for ParseCharError

1.59.0 · source§

impl PartialEq<TryFromCharError> for TryFromCharError

1.57.0 · source§

impl PartialEq<TryReserveError> for TryReserveError

1.64.0 · source§

impl PartialEq<CString> for CString

1.64.0 · source§

impl PartialEq<FromVecWithNulError> for FromVecWithNulError

1.64.0 · source§

impl PartialEq<IntoStringError> for IntoStringError

1.64.0 · source§

impl PartialEq<NulError> for NulError

source§

impl PartialEq<Error> for origin_studio::std::fmt::Error

1.33.0 · source§

impl PartialEq<PhantomPinned> for PhantomPinned

source§

impl PartialEq<Assume> for Assume

source§

impl PartialEq<AddrParseError> for AddrParseError

1.16.0 · source§

impl PartialEq<Ipv4Addr> for IpAddr

source§

impl PartialEq<Ipv4Addr> for Ipv4Addr

1.16.0 · source§

impl PartialEq<Ipv6Addr> for IpAddr

source§

impl PartialEq<Ipv6Addr> for Ipv6Addr

source§

impl PartialEq<SocketAddrV4> for SocketAddrV4

source§

impl PartialEq<SocketAddrV6> for SocketAddrV6

1.34.0 · source§

impl PartialEq<NonZeroI8> for NonZeroI8

1.34.0 · source§

impl PartialEq<NonZeroI16> for NonZeroI16

1.34.0 · source§

impl PartialEq<NonZeroI32> for NonZeroI32

1.34.0 · source§

impl PartialEq<NonZeroI64> for NonZeroI64

1.34.0 · source§

impl PartialEq<NonZeroI128> for NonZeroI128

1.34.0 · source§

impl PartialEq<NonZeroIsize> for NonZeroIsize

1.28.0 · source§

impl PartialEq<NonZeroU8> for NonZeroU8

1.28.0 · source§

impl PartialEq<NonZeroU16> for NonZeroU16

1.28.0 · source§

impl PartialEq<NonZeroU32> for NonZeroU32

1.28.0 · source§

impl PartialEq<NonZeroU64> for NonZeroU64

1.28.0 · source§

impl PartialEq<NonZeroU128> for NonZeroU128

1.28.0 · source§

impl PartialEq<NonZeroUsize> for NonZeroUsize

source§

impl PartialEq<ParseFloatError> for ParseFloatError

source§

impl PartialEq<ParseIntError> for ParseIntError

1.34.0 · source§

impl PartialEq<TryFromIntError> for TryFromIntError

source§

impl PartialEq<RangeFull> for RangeFull

source§

impl PartialEq<Alignment> for origin_studio::std::ptr::Alignment

source§

impl PartialEq<ParseBoolError> for ParseBoolError

source§

impl PartialEq<Utf8Error> for Utf8Error

source§

impl PartialEq<FromUtf8Error> for FromUtf8Error

source§

impl PartialEq<String> for String

1.3.0 · source§

impl PartialEq<Duration> for Duration

1.66.0 · source§

impl PartialEq<TryFromFloatSecsError> for TryFromFloatSecsError

source§

impl PartialEq<CStr> for CStr

1.69.0 · source§

impl PartialEq<FromBytesUntilNulError> for FromBytesUntilNulError

1.64.0 · source§

impl PartialEq<FromBytesWithNulError> for FromBytesWithNulError

1.36.0 · source§

impl PartialEq<RawWaker> for RawWaker

1.36.0 · source§

impl PartialEq<RawWakerVTable> for RawWakerVTable

source§

impl PartialEq<CreateFlags> for CreateFlags

source§

impl PartialEq<WatchFlags> for WatchFlags

source§

impl PartialEq<Access> for Access

source§

impl PartialEq<AtFlags> for AtFlags

source§

impl PartialEq<FallocateFlags> for FallocateFlags

source§

impl PartialEq<MemfdFlags> for MemfdFlags

source§

impl PartialEq<Mode> for Mode

source§

impl PartialEq<OFlags> for OFlags

source§

impl PartialEq<RenameFlags> for RenameFlags

source§

impl PartialEq<ResolveFlags> for ResolveFlags

source§

impl PartialEq<SealFlags> for SealFlags

source§

impl PartialEq<StatVfsMountFlags> for StatVfsMountFlags

source§

impl PartialEq<StatxFlags> for StatxFlags

source§

impl PartialEq<Errno> for Errno

source§

impl PartialEq<DupFlags> for DupFlags

source§

impl PartialEq<FdFlags> for FdFlags

source§

impl PartialEq<ReadWriteFlags> for ReadWriteFlags

source§

impl PartialEq<MapFlags> for MapFlags

source§

impl PartialEq<MlockFlags> for MlockFlags

source§

impl PartialEq<MprotectFlags> for MprotectFlags

source§

impl PartialEq<MremapFlags> for MremapFlags

source§

impl PartialEq<MsyncFlags> for MsyncFlags

source§

impl PartialEq<ProtFlags> for ProtFlags

source§

impl PartialEq<UserfaultfdFlags> for UserfaultfdFlags

source§

impl PartialEq<MountFlags> for MountFlags

source§

impl PartialEq<MountPropagationFlags> for MountPropagationFlags

source§

impl PartialEq<UnmountFlags> for UnmountFlags

source§

impl PartialEq<PipeFlags> for PipeFlags

source§

impl PartialEq<SpliceFlags> for SpliceFlags

source§

impl PartialEq<FutexFlags> for FutexFlags

source§

impl PartialEq<TimerfdFlags> for TimerfdFlags

source§

impl PartialEq<TimerfdTimerFlags> for TimerfdTimerFlags

source§

impl PartialEq<XattrFlags> for XattrFlags

source§

impl PartialEq<Opcode> for Opcode

source§

impl PartialEq<Pid> for Pid

source§

impl PartialEq<Cpuid> for Cpuid

source§

impl PartialEq<MembarrierQuery> for MembarrierQuery

source§

impl PartialEq<PidfdFlags> for PidfdFlags

source§

impl PartialEq<PidfdGetfdFlags> for PidfdGetfdFlags

source§

impl PartialEq<FloatingPointEmulationControl> for FloatingPointEmulationControl

source§

impl PartialEq<FloatingPointExceptionMode> for FloatingPointExceptionMode

source§

impl PartialEq<SpeculationFeatureControl> for SpeculationFeatureControl

source§

impl PartialEq<SpeculationFeatureState> for SpeculationFeatureState

source§

impl PartialEq<UnalignedAccessControl> for UnalignedAccessControl

source§

impl PartialEq<Rlimit> for Rlimit

source§

impl PartialEq<CpuSet> for CpuSet

source§

impl PartialEq<WaitOptions> for WaitOptions

source§

impl PartialEq<WaitidOptions> for WaitidOptions

source§

impl PartialEq<CapabilityFlags> for CapabilityFlags

source§

impl PartialEq<CapabilitySets> for CapabilitySets

source§

impl PartialEq<CapabilitiesSecureBits> for CapabilitiesSecureBits

source§

impl PartialEq<SVEVectorLengthConfig> for SVEVectorLengthConfig

source§

impl PartialEq<TaggedAddressMode> for TaggedAddressMode

source§

impl PartialEq<ThreadNameSpaceType> for ThreadNameSpaceType

source§

impl PartialEq<UnshareFlags> for UnshareFlags

source§

impl PartialEq<Gid> for Gid

source§

impl PartialEq<Uid> for Uid

§

impl PartialEq<ArangeEntry> for ArangeEntry

§

impl PartialEq<Augmentation> for Augmentation

§

impl PartialEq<BaseAddresses> for BaseAddresses

§

impl PartialEq<BigEndian> for BigEndian

§

impl PartialEq<DebugTypeSignature> for DebugTypeSignature

§

impl PartialEq<DwAccess> for DwAccess

§

impl PartialEq<DwAddr> for DwAddr

§

impl PartialEq<DwAt> for DwAt

§

impl PartialEq<DwAte> for DwAte

§

impl PartialEq<DwCc> for DwCc

§

impl PartialEq<DwCfa> for DwCfa

§

impl PartialEq<DwChildren> for DwChildren

§

impl PartialEq<DwDefaulted> for DwDefaulted

§

impl PartialEq<DwDs> for DwDs

§

impl PartialEq<DwDsc> for DwDsc

§

impl PartialEq<DwEhPe> for DwEhPe

§

impl PartialEq<DwEnd> for DwEnd

§

impl PartialEq<DwForm> for DwForm

§

impl PartialEq<DwId> for DwId

§

impl PartialEq<DwIdx> for DwIdx

§

impl PartialEq<DwInl> for DwInl

§

impl PartialEq<DwLang> for DwLang

§

impl PartialEq<DwLle> for DwLle

§

impl PartialEq<DwLnct> for DwLnct

§

impl PartialEq<DwLne> for DwLne

§

impl PartialEq<DwLns> for DwLns

§

impl PartialEq<DwMacro> for DwMacro

§

impl PartialEq<DwOp> for DwOp

§

impl PartialEq<DwOrd> for DwOrd

§

impl PartialEq<DwRle> for DwRle

§

impl PartialEq<DwSect> for DwSect

§

impl PartialEq<DwSectV2> for DwSectV2

§

impl PartialEq<DwTag> for DwTag

§

impl PartialEq<DwUt> for DwUt

§

impl PartialEq<DwVirtuality> for DwVirtuality

§

impl PartialEq<DwVis> for DwVis

§

impl PartialEq<DwarfFileType> for DwarfFileType

§

impl PartialEq<DwoId> for DwoId

§

impl PartialEq<Encoding> for Encoding

§

impl PartialEq<Error> for Error

§

impl PartialEq<Format> for Format

§

impl PartialEq<LineEncoding> for LineEncoding

§

impl PartialEq<LittleEndian> for LittleEndian

§

impl PartialEq<Pointer> for Pointer

§

impl PartialEq<Range> for Range

§

impl PartialEq<ReaderOffsetId> for ReaderOffsetId

§

impl PartialEq<Register> for Register

§

impl PartialEq<RunTimeEndian> for RunTimeEndian

§

impl PartialEq<SectionBaseAddresses> for SectionBaseAddresses

§

impl PartialEq<SectionId> for SectionId

§

impl PartialEq<StoreOnHeap> for StoreOnHeap

§

impl PartialEq<UnitIndexSection> for UnitIndexSection

§

impl PartialEq<UnwindAction> for UnwindAction

§

impl PartialEq<UnwindReasonCode> for UnwindReasonCode

§

impl PartialEq<Value> for Value

§

impl PartialEq<ValueType> for ValueType

§

impl PartialEq<__kernel_timespec> for __kernel_timespec

§

impl PartialEq<fsconfig_command> for fsconfig_command

§

impl PartialEq<membarrier_cmd> for membarrier_cmd

§

impl PartialEq<membarrier_cmd_flag> for membarrier_cmd_flag

1.10.0 · source§

impl<'a> PartialEq<Location<'a>> for origin_studio::std::panic::Location<'a>

source§

impl<'a> PartialEq<Utf8Chunk<'a>> for Utf8Chunk<'a>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<'a, 'b, B, C> PartialEq<Cow<'b, C>> for Cow<'a, B>where B: PartialEq<C> + ToOwned + ?Sized, C: ToOwned + ?Sized,

§

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

§

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

§

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

source§

impl<A, B> PartialEq<&B> for &Awhere A: PartialEq<B> + ?Sized, B: ?Sized,

source§

impl<A, B> PartialEq<&B> for &mut Awhere A: PartialEq<B> + ?Sized, B: ?Sized,

source§

impl<A, B> PartialEq<&mut B> for &Awhere A: PartialEq<B> + ?Sized, B: ?Sized,

source§

impl<A, B> PartialEq<&mut B> for &mut Awhere A: PartialEq<B> + ?Sized, B: ?Sized,

source§

impl<A, B> PartialEq<[B]> for [A]where A: PartialEq<B>,

source§

impl<A, B, const N: usize> PartialEq<&[B]> for [A; N]where A: PartialEq<B>,

source§

impl<A, B, const N: usize> PartialEq<&mut [B]> for [A; N]where A: PartialEq<B>,

source§

impl<A, B, const N: usize> PartialEq<[A; N]> for &[B]where B: PartialEq<A>,

source§

impl<A, B, const N: usize> PartialEq<[A; N]> for &mut [B]where B: PartialEq<A>,

source§

impl<A, B, const N: usize> PartialEq<[A; N]> for [B]where B: PartialEq<A>,

source§

impl<A, B, const N: usize> PartialEq<[B; N]> for [A; N]where A: PartialEq<B>,

source§

impl<A, B, const N: usize> PartialEq<[B]> for [A; N]where A: PartialEq<B>,

1.55.0 · source§

impl<B, C> PartialEq<ControlFlow<B, C>> for ControlFlow<B, C>where B: PartialEq<B>, C: PartialEq<C>,

source§

impl<Dyn> PartialEq<DynMetadata<Dyn>> for DynMetadata<Dyn>where Dyn: ?Sized,

1.4.0 · source§

impl<F> PartialEq<F> for Fwhere F: FnPtr,

1.29.0 · source§

impl<H> PartialEq<BuildHasherDefault<H>> for BuildHasherDefault<H>

source§

impl<Idx> PartialEq<Range<Idx>> for origin_studio::std::ops::Range<Idx>where Idx: PartialEq<Idx>,

source§

impl<Idx> PartialEq<RangeFrom<Idx>> for RangeFrom<Idx>where Idx: PartialEq<Idx>,

1.26.0 · source§

impl<Idx> PartialEq<RangeInclusive<Idx>> for RangeInclusive<Idx>where Idx: PartialEq<Idx>,

source§

impl<Idx> PartialEq<RangeTo<Idx>> for RangeTo<Idx>where Idx: PartialEq<Idx>,

1.26.0 · source§

impl<Idx> PartialEq<RangeToInclusive<Idx>> for RangeToInclusive<Idx>where Idx: PartialEq<Idx>,

source§

impl<K, V, A> PartialEq<BTreeMap<K, V, A>> for BTreeMap<K, V, A>where K: PartialEq<K>, V: PartialEq<V>, A: Allocator + Clone,

1.41.0 · source§

impl<P, Q> PartialEq<Pin<Q>> for Pin<P>where P: Deref, Q: Deref, <P as Deref>::Target: PartialEq<<Q as Deref>::Target>,

§

impl<R> PartialEq<CallFrameInstruction<R>> for CallFrameInstruction<R>where R: PartialEq<R> + Reader,

§

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

§

impl<R> PartialEq<DebugFrame<R>> for DebugFrame<R>where R: PartialEq<R> + Reader,

§

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

§

impl<R> PartialEq<EhFrameHdr<R>> for EhFrameHdr<R>where R: PartialEq<R> + Reader,

§

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

§

impl<R> PartialEq<Expression<R>> for Expression<R>where R: PartialEq<R> + Reader,

§

impl<R> PartialEq<LocationListEntry<R>> for LocationListEntry<R>where R: PartialEq<R> + Reader,

§

impl<R> PartialEq<RegisterRule<R>> for RegisterRule<R>where R: PartialEq<R> + Reader,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<R, S> PartialEq<UnwindTableRow<R, S>> for UnwindTableRow<R, S>where R: PartialEq<R> + Reader, S: PartialEq<S> + UnwindContextStorage<R>,

§

impl<Storage> PartialEq<__BindgenBitfieldUnit<Storage>> for __BindgenBitfieldUnit<Storage>where Storage: PartialEq<Storage>,

1.17.0 · source§

impl<T> PartialEq<Bound<T>> for Bound<T>where T: PartialEq<T>,

source§

impl<T> PartialEq<Option<T>> for Option<T>where T: PartialEq<T>,

1.36.0 · source§

impl<T> PartialEq<Poll<T>> for Poll<T>where T: PartialEq<T>,

source§

impl<T> PartialEq<*const T> for *const Twhere T: ?Sized,

source§

impl<T> PartialEq<*mut T> for *mut Twhere T: ?Sized,

source§

impl<T> PartialEq<(T,)> for (T₁, T₂, …, Tₙ)where T: PartialEq<T> + ?Sized,

This trait is implemented for tuples up to twelve items long.

source§

impl<T> PartialEq<Cell<T>> for Cell<T>where T: PartialEq<T> + Copy,

1.70.0 · source§

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

source§

impl<T> PartialEq<RefCell<T>> for RefCell<T>where T: PartialEq<T> + ?Sized,

source§

impl<T> PartialEq<PhantomData<T>> for PhantomData<T>where T: ?Sized,

1.21.0 · source§

impl<T> PartialEq<Discriminant<T>> for Discriminant<T>

1.20.0 · source§

impl<T> PartialEq<ManuallyDrop<T>> for ManuallyDrop<T>where T: PartialEq<T> + ?Sized,

source§

impl<T> PartialEq<Saturating<T>> for Saturating<T>where T: PartialEq<T>,

source§

impl<T> PartialEq<Wrapping<T>> for Wrapping<T>where T: PartialEq<T>,

1.25.0 · source§

impl<T> PartialEq<NonNull<T>> for NonNull<T>where T: ?Sized,

1.19.0 · source§

impl<T> PartialEq<Reverse<T>> for Reverse<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugAbbrevOffset<T>> for DebugAbbrevOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugAddrBase<T>> for DebugAddrBase<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugAddrIndex<T>> for DebugAddrIndex<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugArangesOffset<T>> for DebugArangesOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugFrameOffset<T>> for DebugFrameOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugInfoOffset<T>> for DebugInfoOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugLineOffset<T>> for DebugLineOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugLineStrOffset<T>> for DebugLineStrOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugLocListsBase<T>> for DebugLocListsBase<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugLocListsIndex<T>> for DebugLocListsIndex<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugMacinfoOffset<T>> for DebugMacinfoOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugMacroOffset<T>> for DebugMacroOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugRngListsBase<T>> for DebugRngListsBase<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugRngListsIndex<T>> for DebugRngListsIndex<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugStrOffset<T>> for DebugStrOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugStrOffsetsBase<T>> for DebugStrOffsetsBase<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugStrOffsetsIndex<T>> for DebugStrOffsetsIndex<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DebugTypesOffset<T>> for DebugTypesOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<DieReference<T>> for DieReference<T>where T: PartialEq<T>,

§

impl<T> PartialEq<EhFrameOffset<T>> for EhFrameOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<LocationListsOffset<T>> for LocationListsOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<RangeListsOffset<T>> for RangeListsOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<RawRangeListsOffset<T>> for RawRangeListsOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<UnitOffset<T>> for UnitOffset<T>where T: PartialEq<T>,

§

impl<T> PartialEq<UnitSectionOffset<T>> for UnitSectionOffset<T>where T: PartialEq<T>,

source§

impl<T, A> PartialEq<Box<T, A>> for Box<T, A>where T: PartialEq<T> + ?Sized, A: Allocator,

source§

impl<T, A> PartialEq<BTreeSet<T, A>> for BTreeSet<T, A>where T: PartialEq<T>, A: Allocator + Clone,

source§

impl<T, A> PartialEq<LinkedList<T, A>> for LinkedList<T, A>where T: PartialEq<T>, A: Allocator,

source§

impl<T, A> PartialEq<VecDeque<T, A>> for VecDeque<T, A>where T: PartialEq<T>, A: Allocator,

source§

impl<T, A> PartialEq<Rc<T, A>> for Rc<T, A>where T: PartialEq<T> + ?Sized, A: Allocator,

source§

impl<T, A> PartialEq<Arc<T, A>> for Arc<T, A>where T: PartialEq<T> + ?Sized, A: Allocator,

source§

impl<T, E> PartialEq<Result<T, E>> for Result<T, E>where T: PartialEq<T>, E: PartialEq<E>,

source§

impl<T, U> PartialEq<&[U]> for Cow<'_, [T]>where T: PartialEq<U> + Clone,

source§

impl<T, U> PartialEq<&mut [U]> for Cow<'_, [T]>where T: PartialEq<U> + Clone,

source§

impl<T, U, A1, A2> PartialEq<Vec<U, A2>> for Vec<T, A1>where A1: Allocator, A2: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A> PartialEq<&[U]> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

source§

impl<T, U, A> PartialEq<&[U]> for Vec<T, A>where A: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A> PartialEq<&mut [U]> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

source§

impl<T, U, A> PartialEq<&mut [U]> for Vec<T, A>where A: Allocator, T: PartialEq<U>,

1.48.0 · source§

impl<T, U, A> PartialEq<[U]> for Vec<T, A>where A: Allocator, T: PartialEq<U>,

1.46.0 · source§

impl<T, U, A> PartialEq<Vec<U, A>> for &[T]where A: Allocator, T: PartialEq<U>,

1.46.0 · source§

impl<T, U, A> PartialEq<Vec<U, A>> for &mut [T]where A: Allocator, T: PartialEq<U>,

source§

impl<T, U, A> PartialEq<Vec<U, A>> for Cow<'_, [T]>where A: Allocator, T: PartialEq<U> + Clone,

1.48.0 · source§

impl<T, U, A> PartialEq<Vec<U, A>> for [T]where A: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A> PartialEq<Vec<U, A>> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A, const N: usize> PartialEq<&[U; N]> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

source§

impl<T, U, A, const N: usize> PartialEq<&[U; N]> for Vec<T, A>where A: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A, const N: usize> PartialEq<&mut [U; N]> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

1.17.0 · source§

impl<T, U, A, const N: usize> PartialEq<[U; N]> for VecDeque<T, A>where A: Allocator, T: PartialEq<U>,

source§

impl<T, U, A, const N: usize> PartialEq<[U; N]> for Vec<T, A>where A: Allocator, T: PartialEq<U>,

source§

impl<T, const LANES: usize> PartialEq<Mask<T, LANES>> for Mask<T, LANES>where T: MaskElement + PartialEq<T>, LaneCount<LANES>: SupportedLaneCount,

source§

impl<T, const N: usize> PartialEq<Simd<T, N>> for Simd<T, N>where LaneCount<N>: SupportedLaneCount, T: SimdElement + PartialEq<T>,

source§

impl<Y, R> PartialEq<GeneratorState<Y, R>> for GeneratorState<Y, R>where Y: PartialEq<Y>, R: PartialEq<R>,