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 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 ParseSecp256k1PublicKeyError
impl Eq for ParseSecp256k1SignatureError
impl Eq for radix_common::crypto::PublicKey
impl Eq for PublicKeyHash
impl Eq for ManifestAddress
impl Eq for ManifestExpression
impl Eq for ManifestNonFungibleLocalId
impl Eq for ManifestNonFungibleLocalIdValidationError
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 ManifestCustomExtension
impl Eq for ManifestCustomTraversal
impl Eq for ManifestCustomValue
impl Eq for ManifestCustomValueKind
impl Eq for ManifestToRustValueError
impl Eq for RustToManifestValueError
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 OwnValidation
impl Eq for ReferenceValidation
impl Eq for ScryptoCustomTraversal
impl Eq for ScryptoCustomTypeKind
impl Eq for ScryptoCustomTypeValidation
impl Eq for ScryptoCustomValue
impl Eq for ScryptoCustomValueKind
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 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 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_common::prelude::rust::prelude::fmt::Alignment
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 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 BigEndian
impl Eq for LittleEndian
impl Eq for hashbrown::TryReserveError
impl Eq for Sign
impl Eq for BernoulliError
impl Eq for WeightedError
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 ManifestAddressReservation
impl Eq for ManifestBlobRef
impl Eq for ManifestBucket
impl Eq for ManifestDecimal
impl Eq for ManifestPreciseDecimal
impl Eq for ManifestProof
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 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 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 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 UnorderedKeyError
impl Eq for radix_common::prelude::rust::prelude::fmt::Error
impl Eq for radix_common::prelude::rust::prelude::index_map::indexmap::TryReserveError
impl Eq for Assume
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 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 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 ed25519_dalek::public::PublicKey
impl Eq for ed25519::Signature
impl Eq for getrandom::error::Error
impl Eq for BigInt
impl Eq for BigUint
impl Eq for ParseBigIntError
impl Eq for vec256_storage
impl Eq for vec512_storage
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 Eq for vec128_storage
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<'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 LocatedValidationError<'s, E>where
E: Eq + CustomExtension,
impl<'s, E> Eq for FullLocation<'s, E>
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_common::prelude::traversal::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, 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 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 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_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_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 hashbrown::map::HashMap<K, V, S, A>
impl<Ptr> Eq for Pin<Ptr>
impl<S> Eq for SchemaVersions<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 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.