pub trait Eq: PartialEq<Self> { }
miri-test-libstd
only.Expand description
Trait for equality comparisons which are equivalence relations.
This means, that in addition to a == b
and a != b
being strict inverses, the equality must
be (for all a
, b
and c
):
- reflexive:
a == a
; - symmetric:
a == b
impliesb == a
; and - transitive:
a == b
andb == c
impliesa == c
.
This property cannot be checked by the compiler, and therefore Eq
implies
PartialEq
, and has no extra methods.
Derivable
This trait can be used with #[derive]
. When derive
d, 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 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 {}
Implementors§
impl Eq for CachePreferenceError
impl Eq for ClientCachePreference
impl Eq for CompressPreference
impl Eq for PreferredCompression
impl Eq for ServerCachePreference
impl Eq for UriKey
impl Eq for Value
impl Eq for BindIpVersion
impl Eq for CacheAction
impl Eq for Action
impl Eq for kvarn::prelude::compact_str::core::cmp::Ordering
impl Eq for Infallible
impl Eq for FpCategory
impl Eq for IntErrorKind
impl Eq for Which
impl Eq for SearchStep
impl Eq for kvarn::prelude::compact_str::core::sync::atomic::Ordering
impl Eq for kvarn::prelude::fmt::Alignment
impl Eq for kvarn::prelude::io::ErrorKind
impl Eq for SeekFrom
impl Eq for kvarn::prelude::net::IpAddr
impl Eq for Ipv6MulticastScope
impl Eq for Shutdown
impl Eq for SocketAddr
impl Eq for CacheControlError
impl Eq for RequestParseStage
impl Eq for SanitizeError
impl Eq for TryReserveErrorKind
impl Eq for BacktraceStatus
impl Eq for VarError
impl Eq for BacktraceStyle
impl Eq for std::sync::mpsc::RecvTimeoutError
impl Eq for std::sync::mpsc::TryRecvError
impl Eq for FlushCompress
impl Eq for FlushDecompress
impl Eq for Status
impl Eq for log::Level
impl Eq for log::LevelFilter
impl Eq for Sign
impl Eq for petgraph::dot::Config
impl Eq for Direction
impl Eq for BernoulliError
impl Eq for WeightedError
impl Eq for bool
impl Eq for char
impl Eq for i8
impl Eq for i16
impl Eq for i32
impl Eq for i64
impl Eq for i128
impl Eq for isize
impl Eq for !
impl Eq for str
impl Eq for u8
impl Eq for u16
impl Eq for u32
impl Eq for u64
impl Eq for u128
impl Eq for ()
impl Eq for usize
impl Eq for PathQuery
impl Eq for kvarn::extensions::Id
impl Eq for Bytes
impl Eq for BytesMut
impl Eq for OffsetDateTime
impl Eq for AllocError
impl Eq for Layout
impl Eq for LayoutError
impl Eq for TypeId
impl Eq for CpuidResult
impl Eq for CharTryFromError
impl Eq for DecodeUtf16Error
impl Eq for ParseCharError
impl Eq for TryFromCharError
impl Eq for CStr
impl Eq for FromBytesUntilNulError
impl Eq for FromBytesWithNulError
impl Eq for PhantomPinned
impl Eq for Assume
impl Eq for NonZeroI8
impl Eq for NonZeroI16
impl Eq for NonZeroI32
impl Eq for NonZeroI64
impl Eq for NonZeroI128
impl Eq for NonZeroIsize
impl Eq for NonZeroU8
impl Eq for NonZeroU16
impl Eq for NonZeroU32
impl Eq for NonZeroU64
impl Eq for NonZeroU128
impl Eq for NonZeroUsize
impl Eq for ParseFloatError
impl Eq for ParseIntError
impl Eq for TryFromIntError
impl Eq for RangeFull
impl Eq for kvarn::prelude::compact_str::core::ptr::Alignment
impl Eq for kvarn::prelude::compact_str::core::time::Duration
impl Eq for TryFromFloatSecsError
impl Eq for CompactString
impl Eq for kvarn::prelude::fmt::Error
impl Eq for HeaderName
impl Eq for HeaderValue
impl Eq for Mime
impl Eq for kvarn::prelude::net::AddrParseError
impl Eq for Ipv4Addr
impl Eq for Ipv6Addr
impl Eq for SocketAddrV4
impl Eq for SocketAddrV6
impl Eq for ParseBoolError
impl Eq for Utf8Error
impl Eq for kvarn::prelude::Instant
impl Eq for Method
impl Eq for Path
impl Eq for PathBuf
impl Eq for StatusCode
impl Eq for Version
impl Eq for Authority
impl Eq for PathAndQuery
impl Eq for Scheme
impl Eq for Uri
impl Eq for CriticalRequestComponents
impl Eq for ring::aead::quic::Algorithm
impl Eq for ring::aead::Algorithm
impl Eq for ring::agreement::Algorithm
impl Eq for ring::digest::Algorithm
impl Eq for EcdsaSigningAlgorithm
impl Eq for ring::hkdf::Algorithm
impl Eq for ring::hmac::Algorithm
impl Eq for ring::pbkdf2::Algorithm
impl Eq for EndOfInput
impl Eq for alloc::collections::TryReserveError
impl Eq for CString
impl Eq for FromVecWithNulError
impl Eq for IntoStringError
impl Eq for NulError
impl Eq for FromUtf8Error
impl Eq for String
impl Eq for OsStr
impl Eq for OsString
impl Eq for FileType
impl Eq for Permissions
impl Eq for std::os::unix::ucred::UCred
impl Eq for Components<'_>
impl Eq for StripPrefixError
impl Eq for ExitStatus
impl Eq for ExitStatusError
impl Eq for Output
impl Eq for std::sync::condvar::WaitTimeoutResult
impl Eq for std::sync::mpsc::RecvError
impl Eq for AccessError
impl Eq for ThreadId
impl Eq for SystemTime
impl Eq for FixedBitSet
impl Eq for flate2::Compression
impl Eq for getrandom::error::Error
impl Eq for h2::ext::Protocol
impl Eq for Reason
impl Eq for h2::share::StreamId
impl Eq for ParseLevelError
impl Eq for BigInt
impl Eq for BigUint
impl Eq for ParseBigIntError
impl Eq for petgraph::visit::dfsvisit::Time
impl Eq for socket2::Domain
impl Eq for socket2::Protocol
impl Eq for socket2::RecvFlags
impl Eq for socket2::Type
impl Eq for ATerm
impl Eq for B0
impl Eq for B1
impl Eq for Z0
impl Eq for Equal
impl Eq for Greater
impl Eq for Less
impl Eq for UTerm
impl Eq for uuid::error::Error
impl Eq for Braced
impl Eq for Hyphenated
impl Eq for Simple
impl Eq for Urn
impl Eq for Uuid
impl Eq for Timestamp
impl Eq for StepRng
impl Eq for SmallRng
impl Eq for StdRng
impl Eq for ChaCha8Core
impl Eq for ChaCha8Rng
impl Eq for ChaCha12Core
impl Eq for ChaCha12Rng
impl Eq for ChaCha20Core
impl Eq for ChaCha20Rng
impl Eq for ASN1DateTime
impl Eq for ASN1Time
impl Eq for ASN1TimeZone
impl Eq for Aborted
impl Eq for AccessKind
impl Eq for AccessMode
impl Eq for AddrParseError
impl Eq for AlertDescription
impl Eq for AlertLevel
impl Eq for Alphabet
impl Eq for AnyDelimiterCodec
impl Eq for ApplicationClose
impl Eq for BasicConstraints
impl Eq for BerClassFromIntError
impl Eq for BigEndian
impl Eq for BitOrder
impl Eq for Boolean
impl Eq for BrotliEncoderMode
impl Eq for BrotliEncoderOperation
impl Eq for BrotliEncoderParameter
impl Eq for BrotliEncoderStreamState
impl Eq for BulkAlgorithm
impl Eq for BytesCodec
impl Eq for Canceled
impl Eq for CapacityError
impl Eq for Certificate
impl Eq for CertificateStatusType
impl Eq for ChallengePassword
impl Eq for Chunk
impl Eq for CipherSuite
impl Eq for Class
impl Eq for ClientCertificateType
impl Eq for CloseCode
impl Eq for Code
impl Eq for Code
impl Eq for CodeBlockState
impl Eq for Collector
impl Eq for Component
impl Eq for ComponentRange
impl Eq for Compression
impl Eq for CompressionLevel
impl Eq for CompressionStrategy
impl Eq for Config
impl Eq for ConfigError
impl Eq for ConnectError
impl Eq for ConnectionClose
impl Eq for ConnectionError
impl Eq for ConnectionHandle
impl Eq for ConnectionId
impl Eq for ContentType
impl Eq for Control
impl Eq for ConversionRange
impl Eq for CreateKind
impl Eq for CtVersion
impl Eq for Data
impl Eq for DataChange
impl Eq for DataFormat
impl Eq for Date
impl Eq for DateKind
impl Eq for Day
impl Eq for DecodeError
impl Eq for DecodeError
impl Eq for DecodeKind
impl Eq for DecodeMetadata
impl Eq for DecodePaddingMode
impl Eq for DecodePartial
impl Eq for DecodeSliceError
impl Eq for DerConstraint
impl Eq for DifferentVariant
impl Eq for Dir
impl Eq for DnsName
impl Eq for DnsName
impl Eq for Domain
impl Eq for Duration
impl Eq for ECCurveType
impl Eq for ECPointFormat
impl Eq for EcnCodepoint
impl Eq for EcnCodepoint
impl Eq for Elapsed
impl Eq for Empty
impl Eq for EncodeSliceError
impl Eq for Encoding
impl Eq for Endianness
impl Eq for Enumerated
impl Eq for Error
impl Eq for Error
impl Eq for Error
impl Eq for Error
impl Eq for Error
impl Eq for ErrorKind
impl Eq for ErrorLevel
impl Eq for Event
impl Eq for EventKind
impl Eq for EventMask
impl Eq for Explicit
impl Eq for ExportKeyingMaterialError
impl Eq for ExtensionType
impl Eq for Field
impl Eq for FieldSet
impl Eq for FileTime
impl Eq for FilterOp
impl Eq for FinishError
impl Eq for Flag
impl Eq for Flags
impl Eq for FormattedComponents
impl Eq for Frame
impl Eq for FrameHeader
impl Eq for FsyncFlags
impl Eq for GeneralizedTime
impl Eq for Handle
impl Eq for HandshakeType
impl Eq for HashAlgorithm
impl Eq for Header<'_>
impl Eq for HeartbeatMessageType
impl Eq for HeartbeatMode
impl Eq for Hour
impl Eq for Id
impl Eq for Identifier
impl Eq for IdleTimeout
impl Eq for Ignore
impl Eq for Implicit
impl Eq for IndeterminateOffset
impl Eq for InhibitAnyPolicy
impl Eq for Instant
impl Eq for Instant
impl Eq for Interest
impl Eq for Interest
impl Eq for InvalidBufferSize
impl Eq for InvalidDnsNameError
impl Eq for InvalidFormatDescription
impl Eq for InvalidLength
impl Eq for InvalidSubjectNameError
impl Eq for InvalidVariant
impl Eq for IoState
impl Eq for IpAddr
impl Eq for KeyUpdateRequest
impl Eq for KeyUsage
impl Eq for Kind
impl Eq for Length
impl Eq for Level
impl Eq for LevelFilter
impl Eq for LinesCodec
impl Eq for LiteralPredictionModeNibble
impl Eq for LittleEndian
impl Eq for MZError
impl Eq for MZFlush
impl Eq for MZStatus
impl Eq for Message
impl Eq for MetadataKind
impl Eq for MimeGuess
impl Eq for Minute
impl Eq for MissedTickBehavior
impl Eq for ModifyKind
impl Eq for Month
impl Eq for Month
impl Eq for MonthRepr
impl Eq for NSCertType
impl Eq for NamedCurve
impl Eq for NamedGroup
impl Eq for Needed
impl Eq for NidError
impl Eq for Null
impl Eq for Null
impl Eq for OffsetHour
impl Eq for OffsetMinute
impl Eq for OffsetPrecision
impl Eq for OffsetSecond
impl Eq for OnceState
impl Eq for OpCode
impl Eq for Ordinal
impl Eq for OwnedFormatItem
impl Eq for PSKKeyExchangeMode
impl Eq for Padding
impl Eq for ParkResult
impl Eq for ParkToken
impl Eq for Parse
impl Eq for ParseAlphabetError
impl Eq for ParseFromDescription
impl Eq for Payload
impl Eq for PayloadU8
impl Eq for PayloadU16
impl Eq for PayloadU24
impl Eq for Pem
impl Eq for Period
impl Eq for PolicyConstraints
impl Eq for PollNext
impl Eq for PrimitiveDateTime
impl Eq for PrivateKey
impl Eq for Protocol
impl Eq for ProtocolError
impl Eq for ProtocolVersion
impl Eq for PushError
impl Eq for Random
impl Eq for ReadError
impl Eq for ReadError
impl Eq for ReadExactError
impl Eq for ReadToEndError
impl Eq for ReadableError
impl Eq for Ready
impl Eq for ReadyTimeoutError
impl Eq for ReasonCode
impl Eq for ReasonFlags
impl Eq for RecursiveMode
impl Eq for RecvError
impl Eq for RecvError
impl Eq for RecvError
impl Eq for RecvFlags
impl Eq for RecvTimeoutError
impl Eq for RemovalCause
impl Eq for RemoveKind
impl Eq for RenameMode
impl Eq for RequeueOp
impl Eq for RevocationReason
impl Eq for Rfc2822
impl Eq for Rfc3339
impl Eq for Rng
impl Eq for Role
impl Eq for RuntimeFlavor
impl Eq for Second
impl Eq for SelectTimeoutError
impl Eq for SendDatagramError
impl Eq for SendDatagramError
impl Eq for SendError
impl Eq for ServerName
impl Eq for ServerNameType
impl Eq for Side
impl Eq for SignatureAlgorithm
impl Eq for SignatureScheme
impl Eq for SockAddr
impl Eq for Soundness
impl Eq for StoppedError
impl Eq for StreamEvent
impl Eq for StreamId
impl Eq for StreamId
impl Eq for StreamResult
impl Eq for Subsecond
impl Eq for SubsecondDigits
impl Eq for SupportedProtocolVersion
impl Eq for TDEFLFlush
impl Eq for TDEFLStatus
impl Eq for TINFLStatus
impl Eq for Tag
impl Eq for Time
impl Eq for Time
impl Eq for TimePrecision
impl Eq for TimeoutFlags
impl Eq for Token
impl Eq for TransportParameters
impl Eq for TryAcquireError
impl Eq for TryFromParsed
impl Eq for TryReadyError
impl Eq for TryRecvError
impl Eq for TryRecvError
impl Eq for TryRecvError
impl Eq for TryRecvError
impl Eq for TryReserveError
impl Eq for TryReserveError
impl Eq for TryReserveError
impl Eq for TrySelectError
impl Eq for Type
impl Eq for UCred
impl Eq for UnixTimestamp
impl Eq for UnixTimestampPrecision
impl Eq for UnknownStream
impl Eq for UnknownStream
impl Eq for UnparkResult
impl Eq for UnparkToken
impl Eq for UrlError
impl Eq for UtcOffset
impl Eq for UtcTime
impl Eq for Validity
impl Eq for VarInt
impl Eq for VarIntBoundsExceeded
impl Eq for WaitTimeoutResult
impl Eq for WatchDescriptor
impl Eq for WatchMask
impl Eq for WatcherKind
impl Eq for WeekNumber
impl Eq for WeekNumberRepr
impl Eq for Weekday
impl Eq for Weekday
impl Eq for WeekdayRepr
impl Eq for WriteError
impl Eq for WriteError
impl Eq for Written
impl Eq for X509Version
impl Eq for Year
impl Eq for YearRepr
impl Eq for vec128_storage
impl Eq for vec256_storage
impl Eq for vec512_storage
impl<'a> Eq for std::path::Component<'a>
impl<'a> Eq for Prefix<'a>
impl<'a> Eq for Location<'a>
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> Eq for Query<'a>
impl<'a> Eq for QueryPair<'a>
impl<'a> Eq for Input<'a>
impl<'a> Eq for PrefixComponent<'a>
impl<'a> Eq for log::Metadata<'a>
impl<'a> Eq for MetadataBuilder<'a>
impl<'a> Eq for Name<'a>
impl<'a> Eq for Any<'a>
impl<'a> Eq for BitString<'a>
impl<'a> Eq for BmpString<'a>
impl<'a> Eq for BorrowedFormatItem<'a>
impl<'a> Eq for CtExtensions<'a>
impl<'a> Eq for CtLogID<'a>
impl<'a> Eq for DigitallySigned<'a>
impl<'a> Eq for DnsNameRef<'a>
impl<'a> Eq for ECPoint<'a>
impl<'a> Eq for EcdsaSigValue<'a>
impl<'a> Eq for EmbeddedPdv<'a>
impl<'a> Eq for ExtendedKeyUsage<'a>
impl<'a> Eq for GeneralString<'a>
impl<'a> Eq for GraphicString<'a>
impl<'a> Eq for Ia5String<'a>
impl<'a> Eq for Integer<'a>
impl<'a> Eq for IpAddrRef<'a>
impl<'a> Eq for KeyIdentifier<'a>
impl<'a> Eq for Metadata<'a>
impl<'a> Eq for NumericString<'a>
impl<'a> Eq for ObjectDescriptor<'a>
impl<'a> Eq for OctetString<'a>
impl<'a> Eq for Oid<'a>
impl<'a> Eq for PdvIdentification<'a>
impl<'a> Eq for PolicyInformation<'a>
impl<'a> Eq for PolicyMapping<'a>
impl<'a> Eq for PolicyMappings<'a>
impl<'a> Eq for PolicyQualifierInfo<'a>
impl<'a> Eq for PrintableString<'a>
impl<'a> Eq for PublicKey<'a>
impl<'a> Eq for RSAPublicKey<'a>
impl<'a> Eq for Sequence<'a>
impl<'a> Eq for SignedCertificateTimestamp<'a>
impl<'a> Eq for TeletexString<'a>
impl<'a> Eq for UniqueIdentifier<'a>
impl<'a> Eq for UniversalString<'a>
impl<'a> Eq for Utf8String<'a>
impl<'a> Eq for VideotexString<'a>
impl<'a> Eq for VisibleString<'a>
impl<'a, 'b> Eq for MaskGenAlgorithm<'a, 'b>
impl<'a, E, Ix> Eq for EdgeReference<'a, E, Ix>where E: Eq, Ix: Eq + IndexType,
impl<'a, T> Eq for ArcBorrow<'a, T>where T: Eq + 'a + ?Sized,
impl<'a, TagKind, T, E> Eq for TaggedParser<'a, TagKind, T, E>where TagKind: Eq, T: Eq, E: Eq,
impl<'b, T> Eq for Ptr<'b, T>
impl<'s, T> Eq for SliceVec<'s, T>where T: Eq,
impl<'t> Eq for CloseFrame<'t>
impl<A> Eq for &Awhere A: Eq + ?Sized,
impl<A> Eq for &mut Awhere A: Eq + ?Sized,
impl<A> Eq for ExtendedGcd<A>where A: Eq,
impl<A> Eq for ArrayVec<A>where A: Array, <A as Array>::Item: Eq,
impl<A> Eq for SmallVec<A>where A: Array, <A as Array>::Item: Eq,
impl<A> Eq for TinyVec<A>where A: Array, <A as Array>::Item: Eq,
impl<B> Eq for Cow<'_, B>where B: Eq + ToOwned + ?Sized,
impl<B, C> Eq for ControlFlow<B, C>where B: Eq, C: Eq,
impl<Dyn> Eq for DynMetadata<Dyn>where Dyn: ?Sized,
impl<E> Eq for Err<E>where E: Eq,
impl<H> Eq for BuildHasherDefault<H>
impl<H> Eq for HeaderWithLength<H>where H: Eq,
impl<H, T> Eq for HeaderSlice<H, T>where H: Eq, T: Eq + ?Sized,
impl<H, T> Eq for ThinArc<H, T>where H: Eq, T: Eq,
impl<Idx> Eq for Range<Idx>where Idx: Eq,
impl<Idx> Eq for RangeFrom<Idx>where Idx: Eq,
impl<Idx> Eq for RangeInclusive<Idx>where Idx: Eq,
impl<Idx> Eq for RangeTo<Idx>where Idx: Eq,
impl<Idx> Eq for RangeToInclusive<Idx>where Idx: Eq,
impl<Ix> Eq for petgraph::adj::EdgeIndex<Ix>where Ix: Eq + IndexType,
impl<Ix> Eq for petgraph::graph_impl::EdgeIndex<Ix>where Ix: Eq,
impl<Ix> Eq for NodeIndex<Ix>where Ix: Eq,
impl<K, V, A> Eq for BTreeMap<K, V, A>where K: Eq, V: Eq, A: Allocator + Clone,
impl<K, V, S> Eq for kvarn::prelude::HashMap<K, V, S>where K: Eq + Hash, V: Eq, S: BuildHasher,
impl<K, V, S> Eq for IndexMap<K, V, S>where K: Eq + Hash, V: Eq, S: BuildHasher,
impl<K, V, S, A> Eq for HashMap<K, V, S, A>where K: Eq + Hash, V: Eq, S: BuildHasher, A: Allocator + Clone,
impl<K, V, S, A> Eq for HashMap<K, V, S, A>where K: Eq + Hash, V: Eq, S: BuildHasher, A: Allocator + Clone,
impl<N, E> Eq for Element<N, E>where N: Eq, E: Eq,
impl<P> Eq for Pin<P>where P: Deref, <P as Deref>::Target: Eq,
impl<Ret, T> Eq for fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for extern "C" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for extern "C" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for extern "C-unwind" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for extern "C-unwind" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for unsafe fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for unsafe extern "C" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for unsafe extern "C" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for unsafe extern "C-unwind" fn (T₁, T₂, …, Tₙ) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<Ret, T> Eq for unsafe extern "C-unwind" fn (T₁, T₂, …, Tₙ, ...) -> Ret
This trait is implemented for function pointers with up to twelve arguments.
impl<S> Eq for Ascii<S>where S: AsRef<str>,
impl<S> Eq for UniCase<S>where S: AsRef<str>,
impl<T> Eq for Bound<T>where T: Eq,
impl<T> Eq for Option<T>where T: Eq,
impl<T> Eq for Poll<T>where T: Eq,
impl<T> Eq for std::sync::mpsc::TrySendError<T>where T: Eq,
impl<T> Eq for *const Twhere T: ?Sized,
impl<T> Eq for *mut Twhere T: ?Sized,
impl<T> Eq for [T]where T: Eq,
impl<T> Eq for (T₁, T₂, …, Tₙ)where T: Eq + ?Sized,
This trait is implemented for tuples up to twelve items long.