Trait concordium_std::marker::StructuralPartialEq
source · pub trait StructuralPartialEq { }
structural_match
)Expand description
Required trait for constants used in pattern matches.
Any type that derives PartialEq
automatically implements this trait,
regardless of whether its type-parameters implement PartialEq
.
If a const
item contains some type that does not implement this trait,
then that type either (1.) does not implement PartialEq
(which means the
constant will not provide that comparison method, which code generation
assumes is available), or (2.) it implements its own version of
PartialEq
(which we assume does not conform to a structural-equality
comparison).
In either of the two scenarios above, we reject usage of such a constant in a pattern match.
See also the structural match RFC, and issue 63438 which motivated migrating from an attribute-based design to this trait.
Implementors§
impl StructuralPartialEq for concordium_std::cmp::Ordering
impl StructuralPartialEq for TryReserveErrorKind
impl StructuralPartialEq for AccountKind
impl StructuralPartialEq for AmountParseError
impl StructuralPartialEq for CheckAccountSignatureError
impl StructuralPartialEq for LogError
impl StructuralPartialEq for NewAttributeValueError
impl StructuralPartialEq for NewContractNameError
impl StructuralPartialEq for NewReceiveNameError
impl StructuralPartialEq for ParseDurationError
impl StructuralPartialEq for PublicKey
impl StructuralPartialEq for Signature
impl StructuralPartialEq for SignatureKind
impl StructuralPartialEq for TransferError
impl StructuralPartialEq for UpgradeError
impl StructuralPartialEq for WasmVersion
impl StructuralPartialEq for concordium_std::fmt::Alignment
impl StructuralPartialEq for PureHashMarker
impl StructuralPartialEq for FpCategory
impl StructuralPartialEq for IntErrorKind
impl StructuralPartialEq for Fields
impl StructuralPartialEq for FunctionV1
impl StructuralPartialEq for SizeLength
impl StructuralPartialEq for Type
impl StructuralPartialEq for TestStateError
impl StructuralPartialEq for AsciiChar
impl StructuralPartialEq for IpAddr
impl StructuralPartialEq for Ipv6MulticastScope
impl StructuralPartialEq for SocketAddr
impl StructuralPartialEq for SearchStep
impl StructuralPartialEq for core::sync::atomic::Ordering
impl StructuralPartialEq for BacktraceStatus
impl StructuralPartialEq for VarError
impl StructuralPartialEq for SeekFrom
impl StructuralPartialEq for ErrorKind
impl StructuralPartialEq for Shutdown
impl StructuralPartialEq for BacktraceStyle
impl StructuralPartialEq for RecvTimeoutError
impl StructuralPartialEq for TryRecvError
impl StructuralPartialEq for hashbrown::TryReserveError
impl StructuralPartialEq for bool
impl StructuralPartialEq for char
impl StructuralPartialEq for i8
impl StructuralPartialEq for i16
impl StructuralPartialEq for i32
impl StructuralPartialEq for i64
impl StructuralPartialEq for i128
impl StructuralPartialEq for isize
impl StructuralPartialEq for str
impl StructuralPartialEq for u8
impl StructuralPartialEq for u16
impl StructuralPartialEq for u32
impl StructuralPartialEq for u64
impl StructuralPartialEq for u128
impl StructuralPartialEq for ()
impl StructuralPartialEq for usize
impl StructuralPartialEq for UnorderedKeyError
impl StructuralPartialEq for concordium_std::collections::TryReserveError
impl StructuralPartialEq for Error
impl StructuralPartialEq for Assume
impl StructuralPartialEq for ParseFloatError
impl StructuralPartialEq for ParseIntError
impl StructuralPartialEq for TryFromIntError
impl StructuralPartialEq for RangeFull
impl StructuralPartialEq for ContractV0
impl StructuralPartialEq for ContractV1
impl StructuralPartialEq for ContractV2
impl StructuralPartialEq for ContractV3
impl StructuralPartialEq for FunctionV2
impl StructuralPartialEq for ModuleV0
impl StructuralPartialEq for ModuleV1
impl StructuralPartialEq for ModuleV2
impl StructuralPartialEq for ModuleV3
impl StructuralPartialEq for AccountAddress
impl StructuralPartialEq for AccountBalance
impl StructuralPartialEq for AccountPublicKeys
impl StructuralPartialEq for AccountSignatures
impl StructuralPartialEq for Amount
impl StructuralPartialEq for AttributeTag
impl StructuralPartialEq for AttributeValue
impl StructuralPartialEq for ContractAddress
impl StructuralPartialEq for CredentialPublicKeys
impl StructuralPartialEq for CredentialSignatures
impl StructuralPartialEq for concordium_std::Duration
impl StructuralPartialEq for ExchangeRate
impl StructuralPartialEq for ExchangeRates
impl StructuralPartialEq for HashKeccak256
impl StructuralPartialEq for HashSha2256
impl StructuralPartialEq for HashSha3256
impl StructuralPartialEq for MetadataUrl
impl StructuralPartialEq for NotPayableError
impl StructuralPartialEq for OwnedContractName
impl StructuralPartialEq for OwnedEntrypointName
impl StructuralPartialEq for OwnedParameter
impl StructuralPartialEq for OwnedReceiveName
impl StructuralPartialEq for ParseError
impl StructuralPartialEq for PublicKeyEcdsaSecp256k1
impl StructuralPartialEq for PublicKeyEd25519
impl StructuralPartialEq for QueryAccountBalanceError
impl StructuralPartialEq for QueryAccountPublicKeysError
impl StructuralPartialEq for QueryContractBalanceError
impl StructuralPartialEq for QueryContractModuleReferenceError
impl StructuralPartialEq for QueryContractNameError
impl StructuralPartialEq for Reject
impl StructuralPartialEq for SignatureEcdsaSecp256k1
impl StructuralPartialEq for SignatureEd25519
impl StructuralPartialEq for String
impl StructuralPartialEq for Timestamp
impl StructuralPartialEq for CString
impl StructuralPartialEq for FromVecWithNulError
impl StructuralPartialEq for IntoStringError
impl StructuralPartialEq for NulError
impl StructuralPartialEq for FromUtf8Error
impl StructuralPartialEq for Layout
impl StructuralPartialEq for LayoutError
impl StructuralPartialEq for AllocError
impl StructuralPartialEq for CharTryFromError
impl StructuralPartialEq for ParseCharError
impl StructuralPartialEq for DecodeUtf16Error
impl StructuralPartialEq for TryFromCharError
impl StructuralPartialEq for FromBytesUntilNulError
impl StructuralPartialEq for FromBytesWithNulError
impl StructuralPartialEq for Ipv4Addr
impl StructuralPartialEq for Ipv6Addr
impl StructuralPartialEq for AddrParseError
impl StructuralPartialEq for SocketAddrV4
impl StructuralPartialEq for SocketAddrV6
impl StructuralPartialEq for core::ptr::alignment::Alignment
impl StructuralPartialEq for ParseBoolError
impl StructuralPartialEq for Utf8Error
impl StructuralPartialEq for RawWaker
impl StructuralPartialEq for RawWakerVTable
impl StructuralPartialEq for core::time::Duration
impl StructuralPartialEq for TryFromFloatSecsError
impl StructuralPartialEq for FileType
impl StructuralPartialEq for Permissions
impl StructuralPartialEq for StripPrefixError
impl StructuralPartialEq for ExitStatus
impl StructuralPartialEq for ExitStatusError
impl StructuralPartialEq for Output
impl StructuralPartialEq for WaitTimeoutResult
impl StructuralPartialEq for RecvError
impl StructuralPartialEq for AccessError
impl StructuralPartialEq for ThreadId
impl StructuralPartialEq for Instant
impl StructuralPartialEq for SystemTime
impl StructuralPartialEq for PhantomPinned
impl<'a> StructuralPartialEq for Component<'a>
impl<'a> StructuralPartialEq for Prefix<'a>
impl<'a> StructuralPartialEq for ContractName<'a>
impl<'a> StructuralPartialEq for EntrypointName<'a>
impl<'a> StructuralPartialEq for Parameter<'a>
impl<'a> StructuralPartialEq for ReceiveName<'a>
impl<'a> StructuralPartialEq for Location<'a>
impl<'a> StructuralPartialEq for Utf8Chunk<'a>
impl<B, C> StructuralPartialEq for ControlFlow<B, C>
impl<Idx> StructuralPartialEq for Range<Idx>
impl<Idx> StructuralPartialEq for RangeFrom<Idx>
impl<Idx> StructuralPartialEq for RangeInclusive<Idx>
impl<Idx> StructuralPartialEq for RangeTo<Idx>
impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>
impl<ReturnValueType> StructuralPartialEq for CallContractError<ReturnValueType>
impl<T> StructuralPartialEq for Bound<T>
impl<T> StructuralPartialEq for Option<T>
impl<T> StructuralPartialEq for Poll<T>
impl<T> StructuralPartialEq for TrySendError<T>
impl<T> StructuralPartialEq for &Twhere
T: ?Sized,
impl<T> StructuralPartialEq for [T]
impl<T> StructuralPartialEq for (T₁, T₂, …, Tₙ)
This trait is implemented for tuples up to twelve items long.