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
impliesb == a
anda != b
implies!(a == b)
- transitive:
a == b
andb == c
impliesa == 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 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
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§
impl Eq for AddressBech32DecodeError
impl Eq for AddressBech32EncodeError
impl Eq for AlwaysVisibleGlobalNodesVersion
impl Eq for ParseBlsPublicKeyError
impl Eq for ParseBlsSignatureError
impl Eq for ParseEd25519PublicKeyError
impl Eq for ParseEd25519SignatureError
impl Eq for ParseHashError
impl Eq for ParseSecp256k1PublicKeyError
impl Eq for ParseSecp256k1SignatureError
impl Eq for radix_common::crypto::PublicKey
impl Eq for PublicKeyHash
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 AllowedIds
impl Eq for LowerBound
impl Eq for ManifestAddress
impl Eq for ManifestBucketBatch
impl Eq for ManifestComponentAddress
impl Eq for ManifestExpression
impl Eq for ManifestGlobalAddress
impl Eq for ManifestNonFungibleLocalId
impl Eq for ManifestNonFungibleLocalIdValidationError
impl Eq for ManifestPackageAddress
impl Eq for ManifestProofBatch
impl Eq for ManifestResourceAddress
impl Eq for ManifestResourceConstraint
impl Eq for ParseManifestAddressReservationError
impl Eq for ParseManifestBlobRefError
impl Eq for ParseManifestBucketError
impl Eq for ParseManifestDecimalError
impl Eq for ParseManifestExpressionError
impl Eq for ParseManifestPreciseDecimalError
impl Eq for ParseManifestProofError
impl Eq for ResourceConstraintError
impl Eq for ResourceConstraintsError
impl Eq for UpperBound
impl Eq for OwnValidation
impl Eq for ReferenceValidation
impl Eq for ScryptoCustomTraversal
impl Eq for ScryptoCustomTypeKind
impl Eq for ScryptoCustomTypeKindLabel
impl Eq for ScryptoCustomTypeValidation
impl Eq for ScryptoCustomValue
impl Eq for ScryptoCustomValueKind
impl Eq for ContentValidationError
impl Eq for NonFungibleIdType
impl Eq for NonFungibleLocalId
impl Eq for ParseNonFungibleLocalIdError
impl Eq for ParseOwnError
impl Eq for ParseReferenceError
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 BatchPartitionStateUpdate
impl Eq for DatabaseUpdate
impl Eq for NodeStateUpdates
impl Eq for PartitionStateUpdates
impl Eq for TimeComparisonOperator
impl Eq for DateTimeError
impl Eq for EntityType
impl Eq for GenericSubstitution
impl Eq for GlobalCaller
impl Eq for ParseComponentAddressError
impl Eq for ParseGlobalAddressError
impl Eq for ParseInternalAddressError
impl Eq for ParseNonFungibleGlobalIdError
impl Eq for ParsePackageAddressError
impl Eq for ParseResourceAddressError
impl Eq for RoyaltyAmount
impl Eq for SubstateKey
impl Eq for ChildNames
impl Eq for DecodeError
impl Eq for EncodeError
impl Eq for LocalTypeId
impl Eq for NameChangeRule
impl Eq for NoCustomExtension
impl Eq for NoCustomSchema
impl Eq for NoCustomTerminalValueRef
impl Eq for NoCustomTraversal
impl Eq for NoCustomTypeKind
impl Eq for NoCustomTypeKindLabel
impl Eq for NoCustomTypeValidation
impl Eq for NoCustomValue
impl Eq for NoCustomValueKind
impl Eq for OwnedNameChange
impl Eq for RustTypeId
impl Eq for SchemaValidationError
impl Eq for ValidationChange
impl Eq for ValidationError
impl Eq for radix_common::prelude::fmt::Alignment
impl Eq for DebugAsHex
impl Eq for radix_common::prelude::fmt::Sign
impl Eq for radix_common::prelude::indexmap::GetDisjointMutError
impl Eq for MapEntryPart
impl Eq for Infallible
impl Eq for FpCategory
impl Eq for IntErrorKind
impl Eq for radix_common::prelude::rust::slice::GetDisjointMutError
impl Eq for SearchStep
impl Eq for radix_common::prelude::rust::sync::atomic::Ordering
impl Eq for RecvTimeoutError
impl Eq for TryRecvError
impl Eq for radix_common::prelude::rust::cmp::Ordering
impl Eq for TryReserveErrorKind
impl Eq for AsciiChar
impl Eq for FromBytesWithNulError
impl Eq for AtomicOrdering
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 bech32::Error
impl Eq for Variant
impl Eq for BLST_ERROR
impl Eq for hashbrown::TryReserveError
impl Eq for num_bigint::bigint::Sign
impl Eq for ParseError
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 Secp256k1UncompressedPublicKey
impl Eq for GeneralResourceConstraint
impl Eq for ManifestAddressReservation
impl Eq for ManifestBlobRef
impl Eq for ManifestBucket
impl Eq for ManifestDecimal
impl Eq for ManifestNamedAddress
impl Eq for ManifestPreciseDecimal
impl Eq for ManifestProof
impl Eq for ManifestResourceConstraints
impl Eq for ManifestCustomTerminalValueRef
impl Eq for BytesNonFungibleLocalId
impl Eq for IntegerNonFungibleLocalId
impl Eq for Own
impl Eq for RUIDNonFungibleLocalId
impl Eq for Reference
impl Eq for StringNonFungibleLocalId
impl Eq for ScryptoCustomExtension
impl Eq for ScryptoCustomSchema
impl Eq for ScryptoCustomTerminalValueRef
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 StateUpdates
impl Eq for radix_common::time::instant::Instant
impl Eq for UtcDateTime
impl Eq for BlueprintId
impl Eq for BlueprintTypeIdentifier
impl Eq for ComponentAddress
impl Eq for Epoch
impl Eq for GlobalAddress
impl Eq for GlobalAddressReservation
impl Eq for InternalAddress
impl Eq for NodeId
impl Eq for NonFungibleGlobalId
impl Eq for PackageAddress
impl Eq for PartitionNumber
impl Eq for PartitionOffset
impl Eq for ResourceAddress
impl Eq for Round
impl Eq for SchemaHash
impl Eq for ScopedTypeId
impl Eq for UnorderedKeyError
impl Eq for radix_common::prelude::fmt::Error
impl Eq for FormattingOptions
impl Eq for radix_common::prelude::indexmap::TryReserveError
impl Eq for Assume
impl Eq for LengthValidation
impl Eq for NameChangeError
impl Eq for NovelTypeMetadata
impl Eq for SborPath
impl Eq for SborPathBuf
impl Eq for SchemaComparisonCompletenessSettings
impl Eq for SchemaComparisonMetadataSettings
impl Eq for SchemaComparisonSettings
impl Eq for SchemaComparisonStructureSettings
impl Eq for SchemaComparisonValidationSettings
impl Eq for String
impl Eq for TypeMetadata
impl Eq for WellKnownTypeId
impl Eq for EnumVariantHeader
impl Eq for TupleHeader
impl Eq for AllocError
impl Eq for Layout
impl Eq for LayoutError
impl Eq for PhantomPinned
impl Eq for ParseFloatError
impl Eq for radix_common::prelude::rust::num::ParseIntError
impl Eq for radix_common::prelude::rust::num::TryFromIntError
impl Eq for RangeFull
impl Eq for radix_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 ByteString
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 ByteStr
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 Ipv4Addr
impl Eq for Ipv6Addr
impl Eq for AddrParseError
impl Eq for SocketAddrV4
impl Eq for SocketAddrV6
impl Eq for core::panic::location::Location<'_>
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 u5
impl Eq for block_buffer::Error
impl Eq for blst::min_pk::PublicKey
impl Eq for blst::min_pk::Signature
impl Eq for blst::min_sig::PublicKey
impl Eq for blst::min_sig::Signature
impl Eq for blst_fp2
impl Eq for blst_fp6
impl Eq for blst_fp12
impl Eq for blst_fp
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 bnum::errors::parseint::ParseIntError
impl Eq for bnum::errors::tryfrom::TryFromIntError
impl Eq for InvalidLength
impl Eq for CompressedEdwardsY
impl Eq for EdwardsPoint
impl Eq for MontgomeryPoint
impl Eq for CompressedRistretto
impl Eq for RistrettoPoint
impl Eq for Scalar
impl Eq for MacError
impl Eq for InvalidBufferSize
impl Eq for SigningKey
impl Eq for VerifyingKey
impl Eq for ed25519::Signature
impl Eq for BigInt
impl Eq for BigUint
impl Eq for ParseBigIntError
impl Eq for ThreadPool
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<'a> Eq for SubstateKeyRef<'a>
impl<'a> Eq for Utf8Pattern<'a>
impl<'a> Eq for Component<'a>
impl<'a> Eq for Prefix<'a>
impl<'a> Eq for PhantomContravariantLifetime<'a>
impl<'a> Eq for PhantomCovariantLifetime<'a>
impl<'a> Eq for PhantomInvariantLifetime<'a>
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> Eq for PrefixComponent<'a>
impl<'de> Eq for TerminalValueBatchRef<'de>
impl<'de, E> Eq for TypedTraversalEvent<'de, E>
impl<'de, T> Eq for TerminalValueRef<'de, T>
impl<'de, T> Eq for TraversalEvent<'de, T>where
T: Eq + CustomTraversal,
impl<'s> Eq for ContainerType<'s>
impl<'s, E> Eq for LocatedValidationError<'s, E>where
E: Eq + CustomExtension,
impl<'s, E> Eq for FullLocation<'s, E>
impl<'t, 'de, T> Eq for LocatedTraversalEvent<'t, 'de, T>where
T: Eq + CustomTraversal,
impl<'t, 's, 'de, E> Eq for TypedLocatedTraversalEvent<'t, 's, 'de, E>
impl<'t, 's, T> Eq for TypedLocation<'t, 's, T>where
T: Eq + CustomTraversal,
impl<'t, T> Eq for radix_common::prelude::traversal::Location<'t, T>where
T: 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, 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 PayloadValidationError<E>where
E: Eq + CustomExtension,
impl<E> Eq for TypeValidation<E>where
E: Eq + CustomTypeValidation,
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 CurrentValueInfo<E>
impl<F> Eq for Fwhere
F: FnPtr,
impl<H> Eq for BuildHasherDefault<H>
impl<Idx> Eq for radix_common::prelude::rust::ops::Range<Idx>where
Idx: Eq,
impl<Idx> Eq for radix_common::prelude::rust::ops::RangeFrom<Idx>where
Idx: Eq,
impl<Idx> Eq for radix_common::prelude::rust::ops::RangeInclusive<Idx>where
Idx: Eq,
impl<Idx> Eq for RangeTo<Idx>where
Idx: Eq,
impl<Idx> Eq for RangeToInclusive<Idx>where
Idx: Eq,
impl<Idx> Eq for core::range::Range<Idx>where
Idx: Eq,
impl<Idx> Eq for core::range::RangeFrom<Idx>where
Idx: Eq,
impl<Idx> Eq for core::range::RangeInclusive<Idx>where
Idx: Eq,
impl<K, V> Eq for radix_common::prelude::indexmap::map::Slice<K, V>
impl<K, V, A> Eq for BTreeMap<K, V, A>
impl<K, V, S> Eq for radix_common::prelude::hash_map::ext_HashMap<K, V, S>
impl<K, V, S> Eq for IndexMap<K, V, S>
impl<K, V, S> Eq for NonIterMap<K, V, S>
impl<K, V, S, A> Eq for hashbrown::map::HashMap<K, V, S, A>
impl<Ptr> Eq for Pin<Ptr>
impl<S> Eq for SchemaComparisonErrorDetail<S>where
S: Eq + CustomSchema,
<S as CustomSchema>::CustomTypeKindLabel: Eq,
<S as CustomSchema>::CustomTypeValidation: Eq,
impl<S> Eq for SchemaVersions<S>where
S: Eq + CustomSchema,
impl<S> Eq for SchemaComparisonError<S>where
S: Eq + CustomSchema,
impl<S> Eq for SchemaV1<S>
impl<S> Eq for VersionedSchema<S>where
S: Eq + CustomSchema,
impl<T> Eq for Option<T>where
T: Eq,
impl<T> Eq for TypeKindLabel<T>where
T: Eq + CustomTypeKindLabel,
impl<T> Eq for ContainerHeader<T>
impl<T> Eq for Bound<T>where
T: Eq,
impl<T> Eq for SendTimeoutError<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,
Pointer equality is an equivalence relation.
impl<T> Eq for *mut Twhere
T: ?Sized,
Pointer equality is an equivalence relation.
impl<T> Eq for [T]where
T: Eq,
impl<T> Eq for (T₁, T₂, …, Tₙ)where
T: Eq,
This trait is implemented for tuples up to twelve items long.