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 Bech32Case
impl Eq for AddressBech32DecodeError
impl Eq for AddressBech32EncodeError
impl Eq for ParseBlsPublicKeyError
impl Eq for ParseBlsSignatureError
impl Eq for ParseEd25519PublicKeyError
impl Eq for ParseEd25519SignatureError
impl Eq for ParseHashError
impl Eq for radix_engine_common::crypto::public_key::PublicKey
impl Eq for PublicKeyHash
impl Eq for ParseSecp256k1PublicKeyError
impl Eq for ParseSecp256k1SignatureError
impl Eq for ManifestCustomExtension
impl Eq for ManifestCustomTraversal
impl Eq for ManifestCustomValue
impl Eq for ManifestCustomValueKind
impl Eq for ManifestToRustValueError
impl Eq for RustToManifestValueError
impl Eq for ManifestAddress
impl Eq for ParseManifestAddressReservationError
impl Eq for ParseManifestBlobRefError
impl Eq for ParseManifestBucketError
impl Eq for ParseManifestDecimalError
impl Eq for ManifestExpression
impl Eq for ParseManifestExpressionError
impl Eq for ManifestNonFungibleLocalId
impl Eq for ManifestNonFungibleLocalIdValidationError
impl Eq for ParseManifestPreciseDecimalError
impl Eq for ParseManifestProofError
impl Eq for OwnValidation
impl Eq for ReferenceValidation
impl Eq for ScryptoCustomTypeKind
impl Eq for ScryptoCustomTypeValidation
impl Eq for ScryptoCustomTraversal
impl Eq for ScryptoCustomValue
impl Eq for ScryptoCustomValueKind
impl Eq for NonFungibleIdType
impl Eq for ContentValidationError
impl Eq for NonFungibleLocalId
impl Eq for ParseNonFungibleLocalIdError
impl Eq for ParseOwnError
impl Eq for ParseReferenceError
impl Eq for SerializationMode
impl Eq for ValueContext
impl Eq for ParseI192Error
impl Eq for ParseI256Error
impl Eq for ParseI320Error
impl Eq for ParseI384Error
impl Eq for ParseI448Error
impl Eq for ParseI512Error
impl Eq for ParseI768Error
impl Eq for ParseU192Error
impl Eq for ParseU256Error
impl Eq for ParseU320Error
impl Eq for ParseU384Error
impl Eq for ParseU448Error
impl Eq for ParseU512Error
impl Eq for ParseU768Error
impl Eq for ParseDecimalError
impl Eq for ParsePreciseDecimalError
impl Eq for RoundingMode
impl Eq for TimeComparisonOperator
impl Eq for DateTimeError
impl Eq for ParseComponentAddressError
impl Eq for ParseGlobalAddressError
impl Eq for ParseInternalAddressError
impl Eq for ParsePackageAddressError
impl Eq for ParseResourceAddressError
impl Eq for EntityType
impl Eq for SubstateKey
impl Eq for RoyaltyAmount
impl Eq for GenericSubstitution
impl Eq for NoCustomExtension
impl Eq for NoCustomSchema
impl Eq for NoCustomTerminalValueRef
impl Eq for NoCustomTraversal
impl Eq for NoCustomTypeKind
impl Eq for NoCustomTypeValidation
impl Eq for NoCustomValue
impl Eq for NoCustomValueKind
impl Eq for SchemaValidationError
impl Eq for ValidationError
impl Eq for ChildNames
impl Eq for DecodeError
impl Eq for EncodeError
impl Eq for LocalTypeId
impl Eq for RustTypeId
impl Eq for Infallible
impl Eq for FpCategory
impl Eq for IntErrorKind
impl Eq for radix_engine_common::prelude::rust::prelude::fmt::Alignment
impl Eq for SearchStep
impl Eq for radix_engine_common::prelude::rust::sync::atomic::Ordering
impl Eq for RecvTimeoutError
impl Eq for TryRecvError
impl Eq for radix_engine_common::prelude::rust::cmp::Ordering
impl Eq for TryReserveErrorKind
impl Eq for AsciiChar
impl Eq for IpAddr
impl Eq for Ipv6MulticastScope
impl Eq for SocketAddr
impl Eq for BacktraceStatus
impl Eq for VarError
impl Eq for SeekFrom
impl Eq for ErrorKind
impl Eq for Shutdown
impl Eq for BacktraceStyle
impl Eq for Sign
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 Bls12381G1PublicKey
impl Eq for Bls12381G2Signature
impl Eq for Ed25519PublicKey
impl Eq for Ed25519PublicKeyHash
impl Eq for Ed25519Signature
impl Eq for Hash
impl Eq for Secp256k1PublicKey
impl Eq for Secp256k1PublicKeyHash
impl Eq for Secp256k1Signature
impl Eq for ManifestCustomTerminalValueRef
impl Eq for ManifestAddressReservation
impl Eq for ManifestBlobRef
impl Eq for ManifestBucket
impl Eq for ManifestDecimal
impl Eq for ManifestPreciseDecimal
impl Eq for ManifestProof
impl Eq for ScryptoCustomExtension
impl Eq for ScryptoCustomSchema
impl Eq for ScryptoCustomTerminalValueRef
impl Eq for BytesNonFungibleLocalId
impl Eq for IntegerNonFungibleLocalId
impl Eq for RUIDNonFungibleLocalId
impl Eq for StringNonFungibleLocalId
impl Eq for Own
impl Eq for Reference
impl Eq for EnumVariantHeader
impl Eq for TupleHeader
impl Eq for I192
impl Eq for I256
impl Eq for I320
impl Eq for I384
impl Eq for I448
impl Eq for I512
impl Eq for I768
impl Eq for U192
impl Eq for U256
impl Eq for U320
impl Eq for U384
impl Eq for U448
impl Eq for U512
impl Eq for U768
impl Eq for Decimal
impl Eq for PreciseDecimal
impl Eq for NetworkDefinition
impl Eq for radix_engine_common::time::instant::Instant
impl Eq for UtcDateTime
impl Eq for ComponentAddress
impl Eq for GlobalAddress
impl Eq for InternalAddress
impl Eq for PackageAddress
impl Eq for ResourceAddress
impl Eq for Epoch
impl Eq for Round
impl Eq for GlobalAddressReservation
impl Eq for NodeId
impl Eq for PartitionNumber
impl Eq for PartitionOffset
impl Eq for BlueprintTypeIdentifier
impl Eq for SchemaHash
impl Eq for ScopedTypeId
impl Eq for LengthValidation
impl Eq for NovelTypeMetadata
impl Eq for SborPath
impl Eq for SborPathBuf
impl Eq for String
impl Eq for TypeMetadata
impl Eq for WellKnownTypeId
impl Eq for AllocError
impl Eq for Layout
impl Eq for LayoutError
impl Eq for PhantomPinned
impl Eq for Assume
impl Eq for NonZero<i8>
impl Eq for NonZero<i16>
impl Eq for NonZero<i32>
impl Eq for NonZero<i64>
impl Eq for NonZero<i128>
impl Eq for NonZero<isize>
impl Eq for NonZero<u8>
impl Eq for NonZero<u16>
impl Eq for NonZero<u32>
impl Eq for NonZero<u64>
impl Eq for NonZero<u128>
impl Eq for NonZero<usize>
impl Eq for ParseFloatError
impl Eq for radix_engine_common::prelude::rust::num::ParseIntError
impl Eq for radix_engine_common::prelude::rust::num::TryFromIntError
impl Eq for RangeFull
impl Eq for UnorderedKeyError
impl Eq for radix_engine_common::prelude::rust::prelude::fmt::Error
impl Eq for radix_engine_common::prelude::rust::prelude::index_map::indexmap::TryReserveError
impl Eq for radix_engine_common::prelude::rust::ptr::Alignment
impl Eq for ParseBoolError
impl Eq for Utf8Error
impl Eq for FromUtf8Error
impl Eq for RecvError
impl Eq for WaitTimeoutResult
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 TypeId
impl Eq for CharTryFromError
impl Eq for ParseCharError
impl Eq for DecodeUtf16Error
impl Eq for TryFromCharError
impl Eq for CpuidResult
impl Eq for CStr
impl Eq for FromBytesUntilNulError
impl Eq for FromBytesWithNulError
impl Eq for Ipv4Addr
impl Eq for Ipv6Addr
impl Eq for AddrParseError
impl Eq for SocketAddrV4
impl Eq for SocketAddrV6
impl Eq for Duration
impl Eq for TryFromFloatSecsError
impl Eq for OsStr
impl Eq for OsString
impl Eq for FileType
impl Eq for Permissions
impl Eq for UCred
impl Eq for Components<'_>
impl Eq for Path
impl Eq for PathBuf
impl Eq for StripPrefixError
impl Eq for ExitStatus
impl Eq for ExitStatusError
impl Eq for Output
impl Eq for AccessError
impl Eq for ThreadId
impl Eq for std::time::Instant
impl Eq for SystemTime
impl Eq for CompressedEdwardsY
impl Eq for EdwardsPoint
impl Eq for MontgomeryPoint
impl Eq for CompressedRistretto
impl Eq for RistrettoPoint
impl Eq for curve25519_dalek::scalar::Scalar
impl Eq for BigInt
impl Eq for BigUint
impl Eq for ParseBigIntError
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 getrandom::error::Error
impl Eq for All
impl Eq for BLST_ERROR
impl Eq for BigEndian
impl Eq for Dl_info
impl Eq for Elf32_Chdr
impl Eq for Elf32_Ehdr
impl Eq for Elf32_Phdr
impl Eq for Elf32_Shdr
impl Eq for Elf32_Sym
impl Eq for Elf64_Chdr
impl Eq for Elf64_Ehdr
impl Eq for Elf64_Phdr
impl Eq for Elf64_Shdr
impl Eq for Elf64_Sym
impl Eq for Error
impl Eq for Error
impl Eq for Error
impl Eq for InvalidBufferSize
impl Eq for InvalidLength
impl Eq for InvalidParityValue
impl Eq for KeyPair
impl Eq for KeyPair
impl Eq for LittleEndian
impl Eq for MacError
impl Eq for Message
impl Eq for OutOfRangeError
impl Eq for Parity
impl Eq for ParseError
impl Eq for ParseIntError
impl Eq for PublicKey
impl Eq for PublicKey
impl Eq for PublicKey
impl Eq for PublicKey
impl Eq for PublicKey
impl Eq for RecoverableSignature
impl Eq for RecoverableSignature
impl Eq for RecoveryId
impl Eq for Scalar
impl Eq for SecretKey
impl Eq for SerializedSignature
impl Eq for SignOnly
impl Eq for Signature
impl Eq for Signature
impl Eq for Signature
impl Eq for Signature
impl Eq for Signature
impl Eq for Signature
impl Eq for ThreadPool
impl Eq for TryFromIntError
impl Eq for TryReserveError
impl Eq for Variant
impl Eq for VerifyOnly
impl Eq for XOnlyPublicKey
impl Eq for XOnlyPublicKey
impl Eq for __c_anonymous_ifru_map
impl Eq for __c_anonymous_ptrace_syscall_info_data
impl Eq for __c_anonymous_ptrace_syscall_info_entry
impl Eq for __c_anonymous_ptrace_syscall_info_exit
impl Eq for __c_anonymous_ptrace_syscall_info_seccomp
impl Eq for __c_anonymous_sockaddr_can_j1939
impl Eq for __c_anonymous_sockaddr_can_tp
impl Eq for __exit_status
impl Eq for __timeval
impl Eq for _libc_fpstate
impl Eq for _libc_fpxreg
impl Eq for _libc_xmmreg
impl Eq for addrinfo
impl Eq for af_alg_iv
impl Eq for aiocb
impl Eq for arpd_request
impl Eq for arphdr
impl Eq for arpreq
impl Eq for arpreq_old
impl Eq for blst_fp
impl Eq for blst_fp2
impl Eq for blst_fp6
impl Eq for blst_fp12
impl Eq for blst_fr
impl Eq for blst_p1
impl Eq for blst_p1_affine
impl Eq for blst_p2
impl Eq for blst_p2_affine
impl Eq for blst_scalar
impl Eq for can_filter
impl Eq for clone_args
impl Eq for cmsghdr
impl Eq for cpu_set_t
impl Eq for dirent
impl Eq for dirent64
impl Eq for dl_phdr_info
impl Eq for dqblk
impl Eq for epoll_event
impl Eq for fanotify_event_metadata
impl Eq for fanotify_response
impl Eq for fd_set
impl Eq for ff_condition_effect
impl Eq for ff_constant_effect
impl Eq for ff_effect
impl Eq for ff_envelope
impl Eq for ff_periodic_effect
impl Eq for ff_ramp_effect
impl Eq for ff_replay
impl Eq for ff_rumble_effect
impl Eq for ff_trigger
impl Eq for file_clone_range
impl Eq for flock
impl Eq for flock64
impl Eq for fsid_t
impl Eq for genlmsghdr
impl Eq for glob64_t
impl Eq for glob_t
impl Eq for group
impl Eq for hostent
impl Eq for hwtstamp_config
impl Eq for if_nameindex
impl Eq for ifaddrs
impl Eq for in6_addr
impl Eq for in6_ifreq
impl Eq for in6_pktinfo
impl Eq for in6_rtmsg
impl Eq for in_addr
impl Eq for in_pktinfo
impl Eq for inotify_event
impl Eq for input_absinfo
impl Eq for input_event
impl Eq for input_id
impl Eq for input_keymap_entry
impl Eq for input_mask
impl Eq for iocb
impl Eq for iovec
impl Eq for ip_mreq
impl Eq for ip_mreq_source
impl Eq for ip_mreqn
impl Eq for ipc_perm
impl Eq for ipv6_mreq
impl Eq for itimerspec
impl Eq for itimerval
impl Eq for j1939_filter
impl Eq for lconv
impl Eq for linger
impl Eq for mallinfo
impl Eq for mallinfo2
impl Eq for mcontext_t
impl Eq for mmsghdr
impl Eq for mntent
impl Eq for mq_attr
impl Eq for msghdr
impl Eq for msginfo
impl Eq for msqid_ds
impl Eq for nl_mmap_hdr
impl Eq for nl_mmap_req
impl Eq for nl_pktinfo
impl Eq for nlattr
impl Eq for nlmsgerr
impl Eq for nlmsghdr
impl Eq for ntptimeval
impl Eq for open_how
impl Eq for option
impl Eq for packet_mreq
impl Eq for passwd
impl Eq for pollfd
impl Eq for posix_spawn_file_actions_t
impl Eq for posix_spawnattr_t
impl Eq for protoent
impl Eq for pthread_attr_t
impl Eq for pthread_barrier_t
impl Eq for pthread_barrierattr_t
impl Eq for pthread_cond_t
impl Eq for pthread_condattr_t
impl Eq for pthread_mutex_t
impl Eq for pthread_mutexattr_t
impl Eq for pthread_rwlock_t
impl Eq for pthread_rwlockattr_t
impl Eq for ptrace_peeksiginfo_args
impl Eq for ptrace_rseq_configuration
impl Eq for ptrace_syscall_info
impl Eq for regex_t
impl Eq for regmatch_t
impl Eq for rlimit
impl Eq for rlimit64
impl Eq for rtentry
impl Eq for rusage
impl Eq for sched_attr
impl Eq for sched_param
impl Eq for sctp_authinfo
impl Eq for sctp_initmsg
impl Eq for sctp_nxtinfo
impl Eq for sctp_prinfo
impl Eq for sctp_rcvinfo
impl Eq for sctp_sndinfo
impl Eq for sctp_sndrcvinfo
impl Eq for seccomp_data
impl Eq for seccomp_notif
impl Eq for seccomp_notif_addfd
impl Eq for seccomp_notif_resp
impl Eq for seccomp_notif_sizes
impl Eq for sem_t
impl Eq for sembuf
impl Eq for semid_ds
impl Eq for seminfo
impl Eq for servent
impl Eq for shmid_ds
impl Eq for sigaction
impl Eq for sigevent
impl Eq for siginfo_t
impl Eq for signalfd_siginfo
impl Eq for sigset_t
impl Eq for sigval
impl Eq for sock_extended_err
impl Eq for sock_filter
impl Eq for sock_fprog
impl Eq for sockaddr
impl Eq for sockaddr_alg
impl Eq for sockaddr_in
impl Eq for sockaddr_in6
impl Eq for sockaddr_ll
impl Eq for sockaddr_nl
impl Eq for sockaddr_storage
impl Eq for sockaddr_un
impl Eq for sockaddr_vm
impl Eq for sockaddr_xdp
impl Eq for spwd
impl Eq for stack_t
impl Eq for stat
impl Eq for stat64
impl Eq for statfs
impl Eq for statfs64
impl Eq for statvfs
impl Eq for statvfs64
impl Eq for statx
impl Eq for statx_timestamp
impl Eq for sysinfo
impl Eq for termios
impl Eq for termios2
impl Eq for timespec
impl Eq for timeval
impl Eq for timex
impl Eq for tls12_crypto_info_aes_gcm_128
impl Eq for tls12_crypto_info_aes_gcm_256
impl Eq for tls12_crypto_info_chacha20_poly1305
impl Eq for tls_crypto_info
impl Eq for tm
impl Eq for tms
impl Eq for u5
impl Eq for ucontext_t
impl Eq for ucred
impl Eq for uinput_abs_setup
impl Eq for uinput_ff_erase
impl Eq for uinput_ff_upload
impl Eq for uinput_setup
impl Eq for uinput_user_dev
impl Eq for user
impl Eq for user_fpregs_struct
impl Eq for user_regs_struct
impl Eq for utimbuf
impl Eq for utmpx
impl Eq for utsname
impl Eq for vec128_storage
impl Eq for vec256_storage
impl Eq for vec512_storage
impl Eq for winsize
impl Eq for xdp_desc
impl Eq for xdp_mmap_offsets
impl Eq for xdp_mmap_offsets_v1
impl Eq for xdp_options
impl Eq for xdp_ring_offset
impl Eq for xdp_ring_offset_v1
impl Eq for xdp_statistics
impl Eq for xdp_statistics_v1
impl Eq for xdp_umem_reg
impl Eq for xdp_umem_reg_v1
impl<'a> Eq for Component<'a>
impl<'a> Eq for Prefix<'a>
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> Eq for core::panic::location::Location<'a>
impl<'a> Eq for PrefixComponent<'a>
impl<'buf> Eq for AllPreallocated<'buf>
impl<'buf> Eq for SignOnlyPreallocated<'buf>
impl<'buf> Eq for VerifyOnlyPreallocated<'buf>
impl<'de> Eq for TerminalValueBatchRef<'de>
impl<'de, C> Eq for TraversalEvent<'de, C>where
C: Eq + CustomTraversal,
impl<'de, E> Eq for TypedTraversalEvent<'de, E>
impl<'de, T> Eq for TerminalValueRef<'de, T>
impl<'s> Eq for ContainerType<'s>
impl<'s, E> Eq for FullLocation<'s, E>
impl<'s, E> Eq for LocatedValidationError<'s, E>where
E: Eq + CustomExtension,
impl<'t, 'de, C> Eq for LocatedTraversalEvent<'t, 'de, C>where
C: Eq + CustomTraversal,
impl<'t, 's, 'de, E> Eq for TypedLocatedTraversalEvent<'t, 's, 'de, E>
impl<'t, 's, C> Eq for TypedLocation<'t, 's, C>where
C: Eq + CustomTraversal,
impl<'t, C> Eq for radix_engine_common::internal_prelude::Location<'t, C>where
C: Eq + CustomTraversal,
impl<A> Eq for &A
impl<A> Eq for &mut A
impl<A> Eq for ExtendedGcd<A>where
A: Eq,
impl<B> Eq for Cow<'_, B>
impl<B, C> Eq for ControlFlow<B, C>
impl<C> Eq for ContainerHeader<C>
impl<C> Eq for ContainerState<C>where
C: Eq + CustomTraversal,
impl<C> Eq for Secp256k1<C>where
C: Context,
impl<C, L> Eq for TypeKind<C, L>
impl<C, L> Eq for TypeData<C, L>where
C: Eq + CustomTypeKind<L>,
L: Eq + SchemaTypeLink,
<C as CustomTypeKind<L>>::CustomTypeValidation: Eq,
impl<Dyn> Eq for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E> Eq for SerializationError<E>where
E: Eq + CustomExtension,
impl<E> Eq for TypeMismatchError<E>where
E: Eq + CustomExtension,
<E as CustomExtension>::CustomSchema: Eq,
<E as CustomExtension>::CustomValueKind: Eq,
impl<E> Eq for TypedTraversalError<E>where
E: Eq + CustomExtension,
impl<E> Eq for PayloadValidationError<E>where
E: Eq + CustomExtension,
impl<E> Eq for TypeValidation<E>where
E: Eq + CustomTypeValidation,
impl<E> Eq for CurrentValueInfo<E>
impl<F> Eq for Fwhere
F: FnPtr,
impl<H> Eq for BuildHasherDefault<H>
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<K, V> Eq for radix_engine_common::prelude::rust::prelude::index_map::indexmap::map::Slice<K, V>
impl<K, V, A> Eq for BTreeMap<K, V, A>
impl<K, V, S> Eq for NonIterMap<K, V, S>
impl<K, V, S> Eq for radix_engine_common::prelude::rust::prelude::hash_map::ext_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<Ptr> Eq for Pin<Ptr>
impl<S> Eq for VersionedSchema<S>where
S: Eq + CustomSchema,
impl<S> Eq for SchemaV1<S>
impl<T> Eq for Option<T>where
T: Eq,
impl<T> Eq for Bound<T>where
T: Eq,
impl<T> Eq for TrySendError<T>where
T: Eq,
impl<T> Eq for Poll<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.