pub trait Eq: PartialEq<Self> { }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 == bimpliesb == a; and - transitive:
a == bandb == cimpliesa == 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 derived, 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 nostr::event::id::Error
impl Eq for nostr::event::kind::Kind
impl Eq for ExternalIdentity
impl Eq for HttpMethod
impl Eq for LiveEventMarker
impl Eq for LiveEventStatus
impl Eq for Marker
impl Eq for RelayMetadata
impl Eq for Report
impl Eq for Tag
impl Eq for TagKind
impl Eq for nostr::key::Error
impl Eq for ClientMessage
impl Eq for RelayMessage
impl Eq for nostr::message::subscription::Alphabet
impl Eq for nostr::nips::nip04::Error
impl Eq for nostr::nips::nip06::Error
impl Eq for nostr::nips::nip19::Error
impl Eq for nostr::nips::nip21::Error
impl Eq for Condition
impl Eq for nostr::nips::nip26::Error
impl Eq for ValidationError
impl Eq for nostr::nips::nip46::Message
impl Eq for nostr::nips::nip46::Request
impl Eq for nostr::nips::nip46::Response
impl Eq for BudgetType
impl Eq for nostr::nips::nip47::Method
impl Eq for RequestParams
impl Eq for ResponseResult
impl Eq for nostr::types::channel_id::Error
impl Eq for Entity
impl Eq for nostr::types::url::Error
impl Eq for nostr::prelude::bech32::Error
impl Eq for Variant
impl Eq for Bip34Error
impl Eq for nostr::prelude::blockdata::locktime::Error
impl Eq for OperationError
impl Eq for Class
impl Eq for ClassifyContext
impl Eq for nostr::prelude::blockdata::script::Error
impl Eq for ParseOutPointError
impl Eq for RelativeLockTimeError
impl Eq for AddressType
impl Eq for nostr::prelude::All
impl Eq for Denomination
impl Eq for EcdsaSigError
impl Eq for EcdsaSighashType
impl Eq for Language
impl Eq for LockTime
impl Eq for Network
impl Eq for Origin
impl Eq for Parity
impl Eq for ParseError
impl Eq for SchnorrSigError
impl Eq for SchnorrSighashType
impl Eq for SignOnly
impl Eq for SyntaxViolation
impl Eq for Value
impl Eq for VerifyOnly
impl Eq for nostr::prelude::hashes::Error
impl Eq for nostr::prelude::hashes::hex::Error
impl Eq for AddrV2
impl Eq for NetworkMessage
impl Eq for Inventory
impl Eq for BloomFlags
impl Eq for RejectReason
impl Eq for BernoulliError
impl Eq for WeightedError
impl Eq for nostr::prelude::util::address::Error
impl Eq for nostr::prelude::util::address::Payload
impl Eq for WitnessVersion
impl Eq for ParseAmountError
impl Eq for nostr::prelude::util::base58::Error
impl Eq for ChildNumber
impl Eq for nostr::prelude::util::bip32::Error
impl Eq for nostr::prelude::util::bip152::Error
impl Eq for nostr::prelude::util::key::Error
impl Eq for nostr::prelude::util::key::secp256k1::Error
impl Eq for MerkleBlockError
impl Eq for MessageSignatureError
impl Eq for nostr::prelude::util::psbt::Error
impl Eq for IncompleteTapTree
impl Eq for nostr::prelude::util::sighash::Error
impl Eq for LeafVersion
impl Eq for TaprootBuilderError
impl Eq for TaprootError
impl Eq for AsciiChar
impl Eq for Infallible
impl Eq for nostr::prelude::core::fmt::Alignment
impl Eq for nostr::prelude::core::net::IpAddr
impl Eq for Ipv6MulticastScope
impl Eq for SocketAddr
impl Eq for FpCategory
impl Eq for IntErrorKind
impl Eq for Which
impl Eq for SearchStep
impl Eq for nostr::prelude::core::sync::atomic::Ordering
impl Eq for nostr::prelude::core::cmp::Ordering
impl Eq for TryReserveErrorKind
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 RecvTimeoutError
impl Eq for std::sync::mpsc::TryRecvError
impl Eq for ParseAlphabetError
impl Eq for DecodeError
impl Eq for DecodeSliceError
impl Eq for EncodeSliceError
impl Eq for DecodePaddingMode
impl Eq for bip39::Error
impl Eq for IpAddrRange
impl Eq for IpNet
impl Eq for IpSubnets
impl Eq for log::Level
impl Eq for log::LevelFilter
impl Eq for Category
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 EventBuilder
impl Eq for EventId
impl Eq for Event
impl Eq for Identity
impl Eq for ImageDimensions
impl Eq for UnsignedEvent
impl Eq for Keys
impl Eq for Filter
impl Eq for SubscriptionId
impl Eq for RelayInformationDocument
impl Eq for Nip19Event
impl Eq for Conditions
impl Eq for DelegationTag
impl Eq for DelegationToken
impl Eq for ParameterizedReplaceableEvent
impl Eq for DelegationResult
impl Eq for NostrConnectMetadata
impl Eq for NostrConnectURI
impl Eq for GetBalanceResponseResult
impl Eq for LookupInvoiceRequestParams
impl Eq for LookupInvoiceResponseResult
impl Eq for MakeInvoiceRequestParams
impl Eq for MakeInvoiceResponseResult
impl Eq for NostrWalletConnectInfo
impl Eq for NostrWalletConnectURI
impl Eq for PayInvoiceRequestParams
impl Eq for PayInvoiceResponseResult
impl Eq for nostr::nips::nip47::Request
impl Eq for ZapRequestData
impl Eq for FileMetadata
impl Eq for Url
URLs compare like their serialization.
impl Eq for ChannelId
impl Eq for Contact
impl Eq for nostr::types::metadata::Metadata
impl Eq for Profile
impl Eq for Timestamp
impl Eq for UncheckedUrl
impl Eq for u5
impl Eq for ChainHash
impl Eq for ConversionError
impl Eq for Height
impl Eq for nostr::prelude::blockdata::locktime::Time
impl Eq for nostr::prelude::blockdata::opcodes::All
impl Eq for Builder
impl Eq for NonStandardSighashType
impl Eq for CheckedData
impl Eq for nostr::prelude::ffi::recovery::RecoverableSignature
impl Eq for nostr::prelude::ffi::KeyPair
impl Eq for nostr::prelude::ffi::PublicKey
impl Eq for nostr::prelude::ffi::Signature
impl Eq for nostr::prelude::ffi::XOnlyPublicKey
impl Eq for nostr::prelude::hashes::hash160::Hash
impl Eq for nostr::prelude::hashes::ripemd160::Hash
impl Eq for nostr::prelude::hashes::sha1::Hash
impl Eq for nostr::prelude::hashes::sha256::Hash
impl Eq for Midstate
impl Eq for nostr::prelude::hashes::sha256d::Hash
impl Eq for nostr::prelude::hashes::sha512::Hash
impl Eq for nostr::prelude::hashes::siphash24::Hash
impl Eq for AddrV2Message
impl Eq for ServiceFlags
impl Eq for CommandString
impl Eq for RawNetworkMessage
impl Eq for GetBlocksMessage
impl Eq for GetHeadersMessage
impl Eq for FilterAdd
impl Eq for FilterLoad
impl Eq for BlockTxn
impl Eq for CmpctBlock
impl Eq for GetBlockTxn
impl Eq for SendCmpct
impl Eq for CFCheckpt
impl Eq for CFHeaders
impl Eq for CFilter
impl Eq for GetCFCheckpt
impl Eq for GetCFHeaders
impl Eq for GetCFilters
impl Eq for Reject
impl Eq for VersionMessage
impl Eq for nostr::prelude::network::Address
impl Eq for StepRng
impl Eq for StdRng
impl Eq for OutOfRangeError
impl Eq for nostr::prelude::Address
impl Eq for AmbiguousLanguages
impl Eq for Amount
impl Eq for Block
impl Eq for BlockHash
impl Eq for BlockHeader
impl Eq for EcdsaSig
impl Eq for FilterHash
impl Eq for FilterHeader
impl Eq for InvalidParityValue
impl Eq for nostr::prelude::KeyPair
impl Eq for Map<String, Value>
impl Eq for MerkleBlock
impl Eq for Mnemonic
impl Eq for Number
impl Eq for OpaqueOrigin
impl Eq for OutPoint
impl Eq for PackedLockTime
impl Eq for nostr::prelude::PrivateKey
impl Eq for PubkeyHash
impl Eq for Scalar
impl Eq for SchnorrSig
impl Eq for Script
impl Eq for ScriptHash
impl Eq for SecretKey
impl Eq for Sequence
impl Eq for Sighash
impl Eq for SignedAmount
impl Eq for Transaction
impl Eq for TxIn
impl Eq for TxMerkleNode
impl Eq for TxOut
impl Eq for Txid
impl Eq for VarInt
impl Eq for WPubkeyHash
impl Eq for WScriptHash
impl Eq for Witness
impl Eq for WitnessCommitment
impl Eq for WitnessMerkleNode
impl Eq for Wtxid
impl Eq for nostr::prelude::XOnlyPublicKey
impl Eq for XpubIdentifier
impl Eq for ChainCode
impl Eq for DerivationPath
impl Eq for ExtendedPrivKey
impl Eq for ExtendedPubKey
impl Eq for Fingerprint
impl Eq for SighashComponents
impl Eq for BlockTransactions
impl Eq for BlockTransactionsRequest
impl Eq for HeaderAndShortIds
impl Eq for PrefilledTransaction
impl Eq for ShortId
impl Eq for TxIndexOutOfRangeError
impl Eq for BlockFilter
impl Eq for nostr::prelude::util::key::secp256k1::ecdsa::RecoverableSignature
impl Eq for RecoveryId
impl Eq for SerializedSignature
impl Eq for nostr::prelude::util::key::secp256k1::ecdsa::Signature
impl Eq for nostr::prelude::util::key::secp256k1::schnorr::Signature
impl Eq for nostr::prelude::util::key::secp256k1::Message
impl Eq for nostr::prelude::util::key::secp256k1::PublicKey
impl Eq for nostr::prelude::util::key::PublicKey
impl Eq for SortKey
impl Eq for PartialMerkleTree
impl Eq for MessageSignature
impl Eq for Key
impl Eq for Pair
impl Eq for nostr::prelude::util::psbt::Input
impl Eq for nostr::prelude::util::psbt::Output
impl Eq for PartiallySignedTransaction
impl Eq for PsbtSighashType
impl Eq for TapTree
impl Eq for TweakedKeyPair
impl Eq for TweakedPublicKey
impl Eq for ControlBlock
impl Eq for FutureLeafVersion
impl Eq for NodeInfo
impl Eq for ScriptLeaf
impl Eq for TapBranchHash
impl Eq for TapBranchTag
impl Eq for TapLeafHash
impl Eq for TapLeafTag
impl Eq for TapSighashHash
impl Eq for TapSighashTag
impl Eq for TapTweakHash
impl Eq for TapTweakTag
impl Eq for TaprootBuilder
impl Eq for TaprootMerkleBranch
impl Eq for TaprootSpendInfo
impl Eq for ParseLengthError
impl Eq for Uint128
impl Eq for Uint256
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 nostr::prelude::core::fmt::Error
impl Eq for PhantomPinned
impl Eq for Assume
impl Eq for nostr::prelude::core::net::AddrParseError
impl Eq for Ipv4Addr
impl Eq for Ipv6Addr
impl Eq for SocketAddrV4
impl Eq for SocketAddrV6
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 nostr::prelude::core::num::ParseIntError
impl Eq for TryFromIntError
impl Eq for RangeFull
impl Eq for nostr::prelude::core::ptr::Alignment
impl Eq for ParseBoolError
impl Eq for Utf8Error
impl Eq for Duration
impl Eq for TryFromFloatSecsError
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 webpki::name::dns_name::InvalidDnsNameError
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 Path
impl Eq for PathBuf
impl Eq for StripPrefixError
impl Eq for ExitStatus
impl Eq for ExitStatusError
impl Eq for std::process::Output
impl Eq for WaitTimeoutResult
impl Eq for std::sync::mpsc::RecvError
impl Eq for AccessError
impl Eq for ThreadId
impl Eq for std::time::Instant
impl Eq for SystemTime
impl Eq for base64::alphabet::Alphabet
impl Eq for DecodeMetadata
impl Eq for bitcoin::parse::ParseIntError
impl Eq for getrandom::error::Error
impl Eq for h2::ext::Protocol
impl Eq for Reason
impl Eq for StreamId
impl Eq for HeaderName
impl Eq for HeaderValue
impl Eq for http::method::Method
impl Eq for StatusCode
impl Eq for Authority
impl Eq for PathAndQuery
impl Eq for Scheme
impl Eq for Uri
impl Eq for http::version::Version
impl Eq for Ipv4AddrRange
impl Eq for Ipv6AddrRange
impl Eq for Ipv4Net
impl Eq for Ipv4Subnets
impl Eq for Ipv6Net
impl Eq for Ipv6Subnets
impl Eq for PrefixLenError
impl Eq for ipnet::parser::AddrParseError
impl Eq for ParseLevelError
impl Eq for Mime
impl Eq for reqwest::tls::Version
impl Eq for Domain
impl Eq for socket2::Protocol
impl Eq for RecvFlags
impl Eq for 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 ChaCha8Core
impl Eq for ChaCha8Rng
impl Eq for ChaCha12Core
impl Eq for ChaCha12Rng
impl Eq for ChaCha20Core
impl Eq for ChaCha20Rng
impl Eq for Aborted
impl Eq for AddrParseError
impl Eq for AlertDescription
impl Eq for AlertLevel
impl Eq for AnyDelimiterCodec
impl Eq for BidiClass
impl Eq for BulkAlgorithm
impl Eq for Bytes
impl Eq for BytesCodec
impl Eq for BytesMut
impl Eq for Canceled
impl Eq for Certificate
impl Eq for CertificateStatusType
impl Eq for CipherSuite
impl Eq for ClientCertificateType
impl Eq for CoderResult
impl Eq for Compression
impl Eq for ContentType
impl Eq for DecoderResult
impl Eq for DnsName
impl Eq for DnsName
impl Eq for ECCurveType
impl Eq for ECPointFormat
impl Eq for Elapsed
impl Eq for Empty
impl Eq for EncoderResult
impl Eq for Encoding
impl Eq for Error
impl Eq for Error
impl Eq for Error
impl Eq for ExtensionType
impl Eq for Field
impl Eq for FieldSet
impl Eq for HandshakeType
impl Eq for HashAlgorithm
impl Eq for HeartbeatMessageType
impl Eq for HeartbeatMode
impl Eq for Id
impl Eq for Identifier
impl Eq for Instant
impl Eq for Interest
impl Eq for Interest
impl Eq for InvalidChunkSize
impl Eq for InvalidDnsNameError
impl Eq for InvalidLength
impl Eq for InvalidSubjectNameError
impl Eq for IoState
impl Eq for IpAddr
impl Eq for IsNormalized
impl Eq for KeyUpdateRequest
impl Eq for Kind
impl Eq for Latin1Bidi
impl Eq for Level
impl Eq for Level
impl Eq for LevelFilter
impl Eq for LinesCodec
impl Eq for MissedTickBehavior
impl Eq for Name
impl Eq for NamedCurve
impl Eq for NamedGroup
impl Eq for PSKKeyExchangeMode
impl Eq for PadType
impl Eq for Payload
impl Eq for PayloadU8
impl Eq for PayloadU16
impl Eq for PayloadU24
impl Eq for PollNext
impl Eq for PrivateKey
impl Eq for Protocol
impl Eq for ProtocolVersion
impl Eq for Random
impl Eq for Ready
impl Eq for ReasonPhrase
impl Eq for RecvError
impl Eq for RecvError
impl Eq for RevocationReason
impl Eq for RuntimeFlavor
impl Eq for SendError
impl Eq for ServerName
impl Eq for ServerNameType
impl Eq for SignatureAlgorithm
impl Eq for SignatureScheme
impl Eq for SupportedProtocolVersion
impl Eq for Time
impl Eq for Token
impl Eq for TryAcquireError
impl Eq for TryRecvError
impl Eq for TryRecvError
impl Eq for TryRecvError
impl Eq for TryReserveError
impl Eq for UCred
impl Eq for vec128_storage
impl Eq for vec256_storage
impl Eq for vec512_storage
impl<'a> Eq for Instruction<'a>
impl<'a> Eq for Component<'a>
impl<'a> Eq for Prefix<'a>
impl<'a> Eq for Annex<'a>
impl<'a> Eq for Location<'a>
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> Eq for untrusted::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 mime::Name<'a>
impl<'a> Eq for DnsNameRef<'a>
impl<'a> Eq for Header<'a>
impl<'a> Eq for IpAddrRef<'a>
impl<'a> Eq for Metadata<'a>
impl<'a> Eq for TargetAddr<'a>
impl<'buf> Eq for AllPreallocated<'buf>
impl<'buf> Eq for SignOnlyPreallocated<'buf>
impl<'buf> Eq for VerifyOnlyPreallocated<'buf>
impl<'headers, 'buf> Eq for Request<'headers, 'buf>
impl<'headers, 'buf> Eq for Response<'headers, 'buf>
impl<'s> Eq for ScriptPath<'s>
impl<'s, T> Eq for SliceVec<'s, T>where T: Eq,
impl<'u, T> Eq for Prevouts<'u, T>where T: Eq + 'u + Borrow<TxOut>,
impl<A> Eq for &Awhere A: Eq + ?Sized,
impl<A> Eq for &mut Awhere A: Eq + ?Sized,
impl<A> Eq for ArrayVec<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<C> Eq for Secp256k1<C>where C: Context,
impl<Dyn> Eq for DynMetadata<Dyn>where Dyn: ?Sized,
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, A> Eq for BTreeMap<K, V, A>where K: Eq, V: Eq, A: Allocator + Clone,
impl<K, V, S> Eq for std::collections::hash::map::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<L, R> Eq for Either<L, R>where L: Eq, R: Eq,
impl<P> Eq for Pin<P>where P: Deref, <P as Deref>::Target: Eq,
impl<S> Eq for Host<S>where S: Eq,
impl<Subtype> Eq for ProprietaryKey<Subtype>where Subtype: Eq + Copy + From<u8> + Into<u8>,
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.