Trait Eq

1.0.0 · Source
pub trait Eq: PartialEq { }
Expand description

Trait for comparisons corresponding to equivalence relations.

The primary difference to PartialEq is the additional requirement for reflexivity. A type that implements PartialEq guarantees that for all a, b and c:

  • symmetric: a == b implies b == a and a != b implies !(a == b)
  • transitive: a == b and b == c implies a == c

Eq, which builds on top of PartialEq also implies:

  • reflexive: a == a

This property cannot be checked by the compiler, and therefore Eq is a trait without methods.

Violating this property is a logic error. The behavior resulting from a logic error is not specified, but users of the trait must ensure that such logic errors do not result in undefined behavior. This means that unsafe code must not rely on the correctness of these methods.

Floating point types such as f32 and f64 implement only PartialEq but not Eq because NaN != NaN.

§Derivable

This trait can be used with #[derive]. When derived, because Eq has no extra methods, it is only informing the compiler that this is an equivalence relation rather than a partial equivalence relation. Note that the derive strategy requires all fields are Eq, which isn’t always desired.

§How can I implement Eq?

If you cannot use the derive strategy, specify that your type implements Eq, which has no extra methods:

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
    }
}

impl Eq for Book {}

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Eq for AsciiChar

Source§

impl Eq for TryReserveErrorKind

1.34.0 · Source§

impl Eq for Infallible

Source§

impl Eq for VarError

1.28.0 · Source§

impl Eq for origin_studio::fmt::Alignment

Source§

impl Eq for DebugAsHex

Source§

impl Eq for Sign

Source§

impl Eq for origin_studio::io::SeekFrom

1.7.0 · Source§

impl Eq for IpAddr

Source§

impl Eq for Ipv6MulticastScope

1.0.0 · Source§

impl Eq for SocketAddr

1.0.0 · Source§

impl Eq for FpCategory

1.55.0 · Source§

impl Eq for IntErrorKind

1.86.0 · Source§

impl Eq for GetDisjointMutError

Source§

impl Eq for SearchStep

1.0.0 · Source§

impl Eq for origin_studio::sync::atomic::Ordering

1.0.0 · Source§

impl Eq for origin_studio::cmp::Ordering

1.64.0 · Source§

impl Eq for FromBytesWithNulError

Source§

impl Eq for DwarfFileType

Source§

impl Eq for Format

Source§

impl Eq for SectionId

Source§

impl Eq for Vendor

Source§

impl Eq for RunTimeEndian

Source§

impl Eq for Pointer

Source§

impl Eq for gimli::read::Error

Source§

impl Eq for IndexSectionId

Source§

impl Eq for ValueType

Source§

impl Eq for fsconfig_command

Source§

impl Eq for membarrier_cmd

Source§

impl Eq for membarrier_cmd_flag

Source§

impl Eq for procmap_query_flags

Source§

impl Eq for rustix::backend::fs::types::Advice

Source§

impl Eq for FileType

Source§

impl Eq for FlockOperation

Source§

impl Eq for rustix::backend::mm::types::Advice

Source§

impl Eq for Resource

Source§

impl Eq for MembarrierCommand

Source§

impl Eq for TimerfdClockId

Source§

impl Eq for ClockId

Source§

impl Eq for rustix::fs::seek_from::SeekFrom

Source§

impl Eq for Direction

Source§

impl Eq for DumpableBehavior

Source§

impl Eq for EndianMode

Source§

impl Eq for FloatingPointMode

Source§

impl Eq for MachineCheckMemoryCorruptionKillPolicy

Source§

impl Eq for PTracer

Source§

impl Eq for SpeculationFeature

Source§

impl Eq for TimeStampCounterReadability

Source§

impl Eq for TimingMethod

Source§

impl Eq for VirtualMemoryMapAddress

Source§

impl Eq for FlockOffsetType

Source§

impl Eq for FlockType

Source§

impl Eq for WakeOp

Source§

impl Eq for WakeOpCmp

Source§

impl Eq for Capability

Source§

impl Eq for CoreSchedulingScope

Source§

impl Eq for SecureComputingMode

Source§

impl Eq for SysCallUserDispatchFastSwitch

Source§

impl Eq for LinkNameSpaceType

1.0.0 · Source§

impl Eq for bool

1.0.0 · Source§

impl Eq for char

1.0.0 · Source§

impl Eq for i8

1.0.0 · Source§

impl Eq for i16

1.0.0 · Source§

impl Eq for i32

1.0.0 · Source§

impl Eq for i64

1.0.0 · Source§

impl Eq for i128

1.0.0 · Source§

impl Eq for isize

Source§

impl Eq for !

1.0.0 · Source§

impl Eq for str

1.0.0 · Source§

impl Eq for u8

1.0.0 · Source§

impl Eq for u16

1.0.0 · Source§

impl Eq for u32

1.0.0 · Source§

impl Eq for u64

1.0.0 · Source§

impl Eq for u128

1.0.0 · Source§

impl Eq for ()

1.0.0 · Source§

impl Eq for usize

Source§

impl Eq for AllocError

1.28.0 · Source§

impl Eq for Layout

1.50.0 · Source§

impl Eq for LayoutError

1.0.0 · Source§

impl Eq for TypeId

1.27.0 · Source§

impl Eq for CpuidResult

Source§

impl Eq for ByteStr

1.34.0 · Source§

impl Eq for CharTryFromError

1.9.0 · Source§

impl Eq for DecodeUtf16Error

1.20.0 · Source§

impl Eq for ParseCharError

1.59.0 · Source§

impl Eq for TryFromCharError

Source§

impl Eq for UnorderedKeyError

1.57.0 · Source§

impl Eq for TryReserveError

1.64.0 · Source§

impl Eq for CString

1.64.0 · Source§

impl Eq for FromVecWithNulError

1.64.0 · Source§

impl Eq for IntoStringError

1.64.0 · Source§

impl Eq for NulError

1.0.0 · Source§

impl Eq for origin_studio::fmt::Error

Source§

impl Eq for FormattingOptions

1.33.0 · Source§

impl Eq for PhantomPinned

Source§

impl Eq for Assume

1.0.0 · Source§

impl Eq for AddrParseError

1.0.0 · Source§

impl Eq for Ipv4Addr

1.0.0 · Source§

impl Eq for Ipv6Addr

1.0.0 · Source§

impl Eq for SocketAddrV4

1.0.0 · Source§

impl Eq for SocketAddrV6

1.0.0 · Source§

impl Eq for ParseFloatError

1.0.0 · Source§

impl Eq for ParseIntError

1.34.0 · Source§

impl Eq for TryFromIntError

1.0.0 · Source§

impl Eq for RangeFull

Source§

impl Eq for origin_studio::ptr::Alignment

1.0.0 · Source§

impl Eq for ParseBoolError

1.0.0 · Source§

impl Eq for Utf8Error

1.0.0 · Source§

impl Eq for FromUtf8Error

1.0.0 · Source§

impl Eq for String

1.3.0 · Source§

impl Eq for Duration

1.66.0 · Source§

impl Eq for TryFromFloatSecsError

Source§

impl Eq for ByteString

1.64.0 · Source§

impl Eq for CStr

1.69.0 · Source§

impl Eq for FromBytesUntilNulError

Source§

impl Eq for DebugTypeSignature

Source§

impl Eq for DwoId

Source§

impl Eq for Encoding

Source§

impl Eq for LineEncoding

Source§

impl Eq for Register

Source§

impl Eq for DwAccess

Source§

impl Eq for DwAddr

Source§

impl Eq for DwAt

Source§

impl Eq for DwAte

Source§

impl Eq for DwCc

Source§

impl Eq for DwCfa

Source§

impl Eq for DwChildren

Source§

impl Eq for DwDefaulted

Source§

impl Eq for DwDs

Source§

impl Eq for DwDsc

Source§

impl Eq for DwEhPe

Source§

impl Eq for DwEnd

Source§

impl Eq for DwForm

Source§

impl Eq for DwId

Source§

impl Eq for DwIdx

Source§

impl Eq for DwInl

Source§

impl Eq for DwLang

Source§

impl Eq for DwLle

Source§

impl Eq for DwLnct

Source§

impl Eq for DwLne

Source§

impl Eq for DwLns

Source§

impl Eq for DwMacro

Source§

impl Eq for DwOp

Source§

impl Eq for DwOrd

Source§

impl Eq for DwRle

Source§

impl Eq for DwSect

Source§

impl Eq for DwSectV2

Source§

impl Eq for DwTag

Source§

impl Eq for DwUt

Source§

impl Eq for DwVirtuality

Source§

impl Eq for DwVis

Source§

impl Eq for BigEndian

Source§

impl Eq for LittleEndian

Source§

impl Eq for ArangeEntry

Source§

impl Eq for Augmentation

Source§

impl Eq for BaseAddresses

Source§

impl Eq for SectionBaseAddresses

Source§

impl Eq for UnitIndexSection

Source§

impl Eq for ReaderOffsetId

Source§

impl Eq for gimli::read::rnglists::Range

Source§

impl Eq for StoreOnHeap

Source§

impl Eq for __kernel_timespec

Source§

impl Eq for Thread

Source§

impl Eq for WaitTimeoutResult

Source§

impl Eq for CreateFlags

Source§

impl Eq for ReadFlags

Source§

impl Eq for WatchFlags

Source§

impl Eq for Access

Source§

impl Eq for AtFlags

Source§

impl Eq for FallocateFlags

Source§

impl Eq for MemfdFlags

Source§

impl Eq for Mode

Source§

impl Eq for OFlags

Source§

impl Eq for RenameFlags

Source§

impl Eq for ResolveFlags

Source§

impl Eq for SealFlags

Source§

impl Eq for StatVfsMountFlags

Source§

impl Eq for Errno

Source§

impl Eq for DupFlags

Source§

impl Eq for FdFlags

Source§

impl Eq for ReadWriteFlags

Source§

impl Eq for MapFlags

Source§

impl Eq for MlockAllFlags

Source§

impl Eq for MlockFlags

Source§

impl Eq for MprotectFlags

Source§

impl Eq for MremapFlags

Source§

impl Eq for MsyncFlags

Source§

impl Eq for ProtFlags

Source§

impl Eq for UserfaultfdFlags

Source§

impl Eq for Flags

Source§

impl Eq for WaitFlags

Source§

impl Eq for TimerfdFlags

Source§

impl Eq for TimerfdTimerFlags

Source§

impl Eq for IFlags

Source§

impl Eq for StatxAttributes

Source§

impl Eq for StatxFlags

Source§

impl Eq for XattrFlags

Source§

impl Eq for Pid

Source§

impl Eq for PidfdFlags

Source§

impl Eq for PidfdGetfdFlags

Source§

impl Eq for FloatingPointEmulationControl

Source§

impl Eq for FloatingPointExceptionMode

Source§

impl Eq for SpeculationFeatureControl

Source§

impl Eq for SpeculationFeatureState

Source§

impl Eq for UnalignedAccessControl

Source§

impl Eq for Rlimit

Source§

impl Eq for Flock

Source§

impl Eq for WaitIdOptions

Source§

impl Eq for WaitOptions

Source§

impl Eq for KernelSigactionFlags

Source§

impl Eq for Signal

Source§

impl Eq for WaitvFlags

Source§

impl Eq for Cpuid

Source§

impl Eq for CapabilityFlags

Source§

impl Eq for CapabilitySets

Source§

impl Eq for MembarrierQuery

Source§

impl Eq for CapabilitiesSecureBits

Source§

impl Eq for SVEVectorLengthConfig

Source§

impl Eq for TaggedAddressMode

Source§

impl Eq for CpuSet

Source§

impl Eq for ThreadNameSpaceType

Source§

impl Eq for UnshareFlags

Source§

impl Eq for Timespec

Source§

impl Eq for Gid

Source§

impl Eq for Uid

Source§

impl Eq for UnwindAction

Source§

impl Eq for UnwindReasonCode

Source§

impl<'a> Eq for Utf8Pattern<'a>

Source§

impl<'a> Eq for PhantomContravariantLifetime<'a>

Source§

impl<'a> Eq for PhantomCovariantLifetime<'a>

Source§

impl<'a> Eq for PhantomInvariantLifetime<'a>

1.10.0 · Source§

impl<'a> Eq for Location<'a>

1.79.0 · Source§

impl<'a> Eq for Utf8Chunk<'a>

Source§

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

Source§

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

Source§

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

1.0.0 · Source§

impl<A> Eq for &A
where A: Eq + ?Sized,

1.0.0 · Source§

impl<A> Eq for &mut A
where A: Eq + ?Sized,

1.0.0 · Source§

impl<B> Eq for Cow<'_, B>
where B: Eq + ToOwned + ?Sized,

1.55.0 · Source§

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

Source§

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

1.4.0 · Source§

impl<F> Eq for F
where F: FnPtr,

1.29.0 · Source§

impl<H> Eq for BuildHasherDefault<H>

1.0.0 · Source§

impl<Idx> Eq for origin_studio::ops::Range<Idx>
where Idx: Eq,

1.0.0 · Source§

impl<Idx> Eq for origin_studio::ops::RangeFrom<Idx>
where Idx: Eq,

1.26.0 · Source§

impl<Idx> Eq for origin_studio::ops::RangeInclusive<Idx>
where Idx: Eq,

1.0.0 · Source§

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

1.26.0 · Source§

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

Source§

impl<Idx> Eq for origin_studio::range::Range<Idx>
where Idx: Eq,

Source§

impl<Idx> Eq for origin_studio::range::RangeFrom<Idx>
where Idx: Eq,

Source§

impl<Idx> Eq for origin_studio::range::RangeInclusive<Idx>
where Idx: Eq,

1.0.0 · Source§

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

1.41.0 · Source§

impl<Ptr> Eq for Pin<Ptr>
where Ptr: Deref, <Ptr as Deref>::Target: Eq,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

1.17.0 · Source§

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

1.0.0 · Source§

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

1.36.0 · Source§

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

Source§

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

Source§

impl<T> Eq for CallFrameInstruction<T>
where T: Eq + ReaderOffset,

Source§

impl<T> Eq for CfaRule<T>
where T: Eq + ReaderOffset,

Source§

impl<T> Eq for RegisterRule<T>
where T: Eq + ReaderOffset,

Source§

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

1.0.0 · Source§

impl<T> Eq for *const T
where T: ?Sized,

Pointer equality is an equivalence relation.

1.0.0 · Source§

impl<T> Eq for *mut T
where T: ?Sized,

Pointer equality is an equivalence relation.

1.0.0 · Source§

impl<T> Eq for [T]
where T: Eq,

1.0.0 · Source§

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

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

1.2.0 · Source§

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

1.70.0 · Source§

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

1.2.0 · Source§

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

Source§

impl<T> Eq for PhantomContravariant<T>
where T: ?Sized,

Source§

impl<T> Eq for PhantomCovariant<T>
where T: ?Sized,

1.0.0 · Source§

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

Source§

impl<T> Eq for PhantomInvariant<T>
where T: ?Sized,

1.21.0 · Source§

impl<T> Eq for Discriminant<T>

1.20.0 · Source§

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

1.28.0 · Source§

impl<T> Eq for NonZero<T>
where T: ZeroablePrimitive + Eq,

1.74.0 · Source§

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

1.0.0 · Source§

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

1.25.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> Eq for UnwindExpression<T>
where T: Eq + ReaderOffset,

Source§

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

Source§

impl<T> Eq for OnceLock<T>
where T: Eq,

1.19.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

Source§

impl<T, A> Eq for UniqueRc<T, A>
where T: Eq + ?Sized, A: Allocator,

1.0.0 · Source§

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

1.0.0 · Source§

impl<T, A> Eq for Vec<T, A>
where T: Eq, A: Allocator,

1.0.0 · Source§

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

Source§

impl<T, S> Eq for UnwindContext<T, S>

Source§

impl<T, S> Eq for UnwindTableRow<T, S>
where T: Eq + ReaderOffset, S: Eq + UnwindContextStorage<T>,

1.0.0 · Source§

impl<T, const N: usize> Eq for [T; N]
where T: Eq,

Source§

impl<T, const N: usize> Eq for Simd<T, N>

Source§

impl<Y, R> Eq for CoroutineState<Y, R>
where Y: Eq, R: Eq,