pub trait Eq: PartialEq { }
Expand description
Trait for comparisons corresponding to equivalence relations.
This means, that in addition to a == b
and a != b
being strict inverses,
the relation must be (for all a
, b
and c
):
- reflexive:
a == a
; - symmetric:
a == b
impliesb == a
(required byPartialEq
as well); and - transitive:
a == b
andb == c
impliesa == c
(required byPartialEq
as well).
This property cannot be checked by the compiler, and therefore Eq
implies
PartialEq
, and has no extra 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.
Implement Eq
in addition to PartialEq
if it’s guaranteed that
PartialEq::eq(a, a)
always returns true
(reflexivity), in addition to
the symmetric and transitive properties already required by PartialEq
.
§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 {}
Object Safety§
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::IpAddr
impl Eq for SocketAddr
impl Eq for CacheControlError
impl Eq for RequestParseStage
impl Eq for SanitizeError
impl Eq for kvarn::prelude::utils::prelude::fmt::Alignment
impl Eq for kvarn::prelude::utils::prelude::io::ErrorKind
impl Eq for SeekFrom
impl Eq for Ipv6MulticastScope
impl Eq for Shutdown
impl Eq for AsciiChar
impl Eq for Infallible
impl Eq for FpCategory
impl Eq for IntErrorKind
impl Eq for SearchStep
impl Eq for kvarn::prelude::utils::prelude::compact_str::core::sync::atomic::Ordering
impl Eq for kvarn::prelude::utils::prelude::compact_str::core::cmp::Ordering
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 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 OffsetDateTime
impl Eq for Mime
impl Eq for Bytes
impl Eq for BytesMut
impl Eq for CompactString
impl Eq for kvarn::prelude::Duration
impl Eq for HeaderName
impl Eq for HeaderValue
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 Uri
impl Eq for Version
impl Eq for CriticalRequestComponents
impl Eq for kvarn::prelude::utils::prelude::fmt::Error
impl Eq for kvarn::prelude::utils::prelude::net::AddrParseError
impl Eq for kvarn::prelude::utils::prelude::net::Ipv4Addr
impl Eq for kvarn::prelude::utils::prelude::net::Ipv6Addr
impl Eq for SocketAddrV4
impl Eq for SocketAddrV6
impl Eq for ParseBoolError
impl Eq for Utf8Error
impl Eq for Authority
impl Eq for PathAndQuery
impl Eq for Scheme
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 ParseFloatError
impl Eq for kvarn::prelude::utils::prelude::compact_str::core::num::ParseIntError
impl Eq for kvarn::prelude::utils::prelude::compact_str::core::num::TryFromIntError
impl Eq for RangeFull
impl Eq for kvarn::prelude::utils::prelude::compact_str::core::ptr::Alignment
impl Eq for TryFromFloatSecsError
impl Eq for EndOfInput
impl Eq for UnorderedKeyError
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::net::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 Compression
impl Eq for getrandom::error::Error
impl Eq for ParseLevelError
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 ACCESS_DESCRIPTION_st
impl Eq for ASN1_ADB_TABLE_st
impl Eq for ASN1_ADB_st
impl Eq for ASN1_AUX_st
impl Eq for ASN1_EXTERN_FUNCS_st
impl Eq for ASN1_ITEM_st
impl Eq for ASN1_TEMPLATE_st
impl Eq for AUTHORITY_KEYID_st
impl Eq for Aborted
impl Eq for AccessKind
impl Eq for AccessMode
impl Eq for AddrParseError
impl Eq for AlertDescription
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for Algorithm
impl Eq for AlgorithmId
impl Eq for AlgorithmIdentifier
impl Eq for Alphabet
impl Eq for AnyDelimiterCodec
impl Eq for ApplicationClose
impl Eq for BASIC_CONSTRAINTS_st
impl Eq for BigEndian
impl Eq for BlockCipherId
impl Eq for BrotliEncoderMode
impl Eq for BrotliEncoderOperation
impl Eq for BrotliEncoderParameter
impl Eq for BrotliEncoderStreamState
impl Eq for BytesCodec
impl Eq for CParameter
impl Eq for CRYPTO_dynlock
impl Eq for CRYPTO_dynlock_value
impl Eq for Canceled
impl Eq for CapacityError
impl Eq for Chunk
impl Eq for CipherSuite
impl Eq for CloseCode
impl Eq for ClosedStream
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 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 DES_cblock_st
impl Eq for DES_ks
impl Eq for DIST_POINT_st
impl Eq for DParameter
impl Eq for DSA_SIG_st
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 DecodeMetadata
impl Eq for DecodePaddingMode
impl Eq for DecodeSliceError
impl Eq for DerTypeId
impl Eq for DifferentVariant
impl Eq for Dir
impl Eq for Domain
impl Eq for Duration
impl Eq for EC_builtin_curve
impl Eq for EDIPartyName_st
impl Eq for EcdsaSigningAlgorithm
impl Eq for EcdsaSigningAlgorithm
impl Eq for EcdsaVerificationAlgorithm
impl Eq for EcnCodepoint
impl Eq for EcnCodepoint
impl Eq for Elapsed
impl Eq for Empty
impl Eq for EncodeSliceError
impl Eq for End
impl Eq for Endianness
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 ExpirationPolicy
impl Eq for ExportKeyingMaterialError
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 GENERAL_SUBTREE_st
impl Eq for HRSS_private_key
impl Eq for HRSS_public_key
impl Eq for Handle
impl Eq for HandshakeType
impl Eq for HashAlgorithm
impl Eq for Hour
impl Eq for ISSUING_DIST_POINT_st
impl Eq for Id
impl Eq for Identifier
impl Eq for IdleTimeout
impl Eq for Ignore
impl Eq for IndeterminateOffset
impl Eq for Instant
impl Eq for Instant
impl Eq for Interest
impl Eq for Interest
impl Eq for InvalidBufferSize
impl Eq for InvalidFormatDescription
impl Eq for InvalidLength
impl Eq for InvalidVariant
impl Eq for IoState
impl Eq for IpAddr
impl Eq for Ipv4Addr
impl Eq for Ipv6Addr
impl Eq for KeySize
impl Eq for Kind
impl Eq for Level
impl Eq for LevelFilter
impl Eq for LinesCodec
impl Eq for LiteralPredictionModeNibble
impl Eq for LittleEndian
impl Eq for LongType
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 NAME_CONSTRAINTS_st
impl Eq for NOTICEREF_st
impl Eq for NamedGroup
impl Eq for Needed
impl Eq for Netscape_spkac_st
impl Eq for Netscape_spki_st
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 OperatingMode
impl Eq for Ordinal
impl Eq for OwnedFormatItem
impl Eq for PKCS7_SIGNED
impl Eq for PKCS7_SIGN_ENVELOPE
impl Eq for POLICYINFO_st
impl Eq for POLICY_CONSTRAINTS_st
impl Eq for POLICY_MAPPING_st
impl Eq for PacketDecodeError
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 ParseIntError
impl Eq for Period
impl Eq for PollNext
impl Eq for PrimitiveDateTime
impl Eq for Protocol
impl Eq for Protocol
impl Eq for ProtocolError
impl Eq for ProtocolVersion
impl Eq for PushError
impl Eq for RIPEMD160state_st
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 Reason
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 RevocationCheckDepth
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 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 StreamId
impl Eq for StreamResult
impl Eq for SubProtocolError
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 TagPropagation
impl Eq for Time
impl Eq for TimePrecision
impl Eq for TimeoutFlags
impl Eq for TlsProtocolId
impl Eq for Token
impl Eq for TransportParameters
impl Eq for TryAcquireError
impl Eq for TryFromIntError
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 USERNOTICE_st
impl Eq for UnixTime
impl Eq for UnixTimestamp
impl Eq for UnixTimestampPrecision
impl Eq for UnknownStatusPolicy
impl Eq for UnparkResult
impl Eq for UnparkToken
impl Eq for Unspecified
impl Eq for UnsupportedOperationError
impl Eq for UrlError
impl Eq for UtcOffset
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 X509_algor_st
impl Eq for X509_info_st
impl Eq for Year
impl Eq for YearRepr
impl Eq for ZSTD_EndDirective
impl Eq for ZSTD_ResetDirective
impl Eq for ZSTD_cParameter
impl Eq for ZSTD_dParameter
impl Eq for ZSTD_strategy
impl Eq for _IO_FILE
impl Eq for __va_list_tag
impl Eq for aes_key_st
impl Eq for asn1_string_st
impl Eq for bf_key_st
impl Eq for bignum_st
impl Eq for bio_method_st
impl Eq for bio_st
impl Eq for blake2b_state_st
impl Eq for bn_mont_ctx_st
impl Eq for buf_mem_st
impl Eq for cbb_buffer_st
impl Eq for cbb_child_st
impl Eq for cbs_st
impl Eq for conf_value_st
impl Eq for crypto_ex_data_st
impl Eq for ecdsa_method_st
impl Eq for ecdsa_sig_st
impl Eq for env_md_ctx_st
impl Eq for evp_cipher_ctx_st
impl Eq for evp_cipher_info_st
impl Eq for evp_encode_ctx_st
impl Eq for evp_hpke_key_st
impl Eq for md4_state_st
impl Eq for md5_state_st
impl Eq for obj_name_st
impl Eq for openssl_method_common_st
impl Eq for otherName_st
impl Eq for point_conversion_form_t
impl Eq for private_key_st
impl Eq for rand_meth_st
impl Eq for rc4_key_st
impl Eq for rsa_meth_st
impl Eq for rsa_pss_params_st
impl Eq for sha256_state_st
impl Eq for sha512_state_st
impl Eq for sha_state_st
impl Eq for tm
impl Eq for trust_token_st
impl Eq for v3_ext_ctx
impl Eq for v3_ext_method
impl Eq for vec128_storage
impl Eq for vec256_storage
impl Eq for vec512_storage
impl Eq for x509_purpose_st
impl Eq for x509_trust_st
impl<'a> Eq for std::path::Component<'a>
impl<'a> Eq for Prefix<'a>
impl<'a> Eq for CertificateDer<'a>
impl<'a> Eq for Query<'a>
impl<'a> Eq for QueryPair<'a>
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> Eq for Location<'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 BorrowedFormatItem<'a>
impl<'a> Eq for CertificateRevocationListDer<'a>
impl<'a> Eq for CertificateSigningRequestDer<'a>
impl<'a> Eq for Der<'a>
impl<'a> Eq for DnsName<'a>
impl<'a> Eq for EchConfigListBytes<'a>
impl<'a> Eq for FfdheGroup<'a>
impl<'a> Eq for Metadata<'a>
impl<'a> Eq for PrivateKeyDer<'a>
impl<'a> Eq for PrivatePkcs1KeyDer<'a>
impl<'a> Eq for PrivatePkcs8KeyDer<'a>
impl<'a> Eq for PrivateSec1KeyDer<'a>
impl<'a> Eq for ServerName<'a>
impl<'a> Eq for SubjectPublicKeyInfoDer<'a>
impl<'a> Eq for TrustAnchor<'a>
impl<'a, E, Ix> Eq for EdgeReference<'a, E, Ix>
impl<'a, T> Eq for ArcBorrow<'a, T>
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 &A
impl<A> Eq for &mut A
impl<A> Eq for Aad<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>
impl<B, C> Eq for ControlFlow<B, C>
impl<Dyn> Eq for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E> Eq for Err<E>where
E: Eq,
impl<F> Eq for Fwhere
F: FnPtr,
impl<H> Eq for BuildHasherDefault<H>
impl<H> Eq for HeaderWithLength<H>where
H: Eq,
impl<H, T> Eq for HeaderSlice<H, T>
impl<H, T> Eq for ThinArc<H, T>
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>
impl<Ix> Eq for petgraph::graph_impl::EdgeIndex<Ix>where
Ix: Eq,
impl<Ix> Eq for NodeIndex<Ix>where
Ix: Eq,
impl<K, V> Eq for Slice<K, V>
impl<K, V, A> Eq for BTreeMap<K, V, A>
impl<K, V, S> Eq for kvarn::prelude::HashMap<K, V, S>
impl<K, V, S> Eq for IndexMap<K, V, S>
impl<K, V, S, A> Eq for HashMap<K, V, S, A>
impl<N, E> Eq for Element<N, E>
impl<Ptr> Eq for Pin<Ptr>
impl<S> Eq for Ascii<S>
impl<S> Eq for UniCase<S>
impl<Storage> Eq for __BindgenBitfieldUnit<Storage>where
Storage: Eq,
impl<T> Eq for Poll<T>where
T: Eq,
impl<T> Eq for Bound<T>where
T: Eq,
impl<T> Eq for Option<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ₙ)
This trait is implemented for tuples up to twelve items long.