Trait frame_support::dispatch::marker::StructuralPartialEq [−][src]
pub trait StructuralPartialEq { }🔬 This is a nightly-only experimental API. (
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 Eq.
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 attribute-based design to this trait.
Implementations on Foreign Types
impl StructuralPartialEq for OptionBoolimpl StructuralPartialEq for Errorimpl<T> StructuralPartialEq for Compact<T>impl StructuralPartialEq for Errorimpl StructuralPartialEq for Errorimpl<'t> StructuralPartialEq for Match<'t>impl<'t> StructuralPartialEq for Match<'t>impl StructuralPartialEq for Matchimpl StructuralPartialEq for MatchKindimpl StructuralPartialEq for MatchKindimpl StructuralPartialEq for Utf8Rangeimpl StructuralPartialEq for FlagsItemimpl StructuralPartialEq for ClassUnicodeOpKindimpl StructuralPartialEq for Commentimpl StructuralPartialEq for ClassSetBinaryOpKindimpl StructuralPartialEq for Positionimpl StructuralPartialEq for ClassBytesRangeimpl StructuralPartialEq for FlagsItemKindimpl StructuralPartialEq for Hirimpl StructuralPartialEq for Classimpl StructuralPartialEq for ClassSetItemimpl StructuralPartialEq for Astimpl StructuralPartialEq for ClassPerlimpl StructuralPartialEq for WordBoundaryimpl StructuralPartialEq for Repetitionimpl StructuralPartialEq for ClassUnicodeRangeimpl StructuralPartialEq for CaptureNameimpl StructuralPartialEq for ClassSetBinaryOpimpl StructuralPartialEq for Errorimpl StructuralPartialEq for Spanimpl StructuralPartialEq for RepetitionOpimpl StructuralPartialEq for Utf8Sequenceimpl StructuralPartialEq for Literalimpl StructuralPartialEq for GroupKindimpl StructuralPartialEq for ClassUnicodeimpl StructuralPartialEq for Errorimpl StructuralPartialEq for ClassSetUnionimpl StructuralPartialEq for Literalimpl StructuralPartialEq for Alternationimpl StructuralPartialEq for Flagimpl StructuralPartialEq for RepetitionKindimpl StructuralPartialEq for Concatimpl StructuralPartialEq for RepetitionRangeimpl StructuralPartialEq for HexLiteralKindimpl StructuralPartialEq for Anchorimpl StructuralPartialEq for AssertionKindimpl StructuralPartialEq for Groupimpl StructuralPartialEq for ClassPerlKindimpl StructuralPartialEq for ErrorKindimpl StructuralPartialEq for ClassUnicodeimpl StructuralPartialEq for ClassSetimpl StructuralPartialEq for ClassUnicodeKindimpl StructuralPartialEq for GroupKindimpl StructuralPartialEq for ErrorKindimpl StructuralPartialEq for ClassBracketedimpl StructuralPartialEq for Classimpl StructuralPartialEq for Literalsimpl StructuralPartialEq for Assertionimpl StructuralPartialEq for Repetitionimpl StructuralPartialEq for SetFlagsimpl StructuralPartialEq for Errorimpl StructuralPartialEq for WithCommentsimpl StructuralPartialEq for Flagsimpl StructuralPartialEq for RepetitionRangeimpl StructuralPartialEq for ClassAsciiimpl StructuralPartialEq for LiteralKindimpl StructuralPartialEq for HirKindimpl StructuralPartialEq for ClassSetRangeimpl StructuralPartialEq for RepetitionKindimpl StructuralPartialEq for Groupimpl StructuralPartialEq for SpecialLiteralKindimpl StructuralPartialEq for ClassAsciiKindimpl StructuralPartialEq for ClassBytesimpl StructuralPartialEq for WaitTimeoutResultimpl StructuralPartialEq for OnceStateimpl StructuralPartialEq for RequeueOpimpl StructuralPartialEq for ParkTokenimpl StructuralPartialEq for UnparkTokenimpl StructuralPartialEq for ParkResultimpl StructuralPartialEq for UnparkResultimpl StructuralPartialEq for FilterOpimpl StructuralPartialEq for LittleEndianimpl StructuralPartialEq for BigEndianimpl<'a, S> StructuralPartialEq for ANSIGenericStrings<'a, S> where
S: 'a + ToOwned + PartialEq<S> + ?Sized,
<S as ToOwned>::Owned: Debug, impl StructuralPartialEq for Styleimpl StructuralPartialEq for Colourimpl<'a, S> StructuralPartialEq for ANSIGenericString<'a, S> where
S: 'a + ToOwned + ?Sized,
<S as ToOwned>::Owned: Debug, impl StructuralPartialEq for RuntimeValueimpl StructuralPartialEq for Signatureimpl StructuralPartialEq for ValueTypeimpl StructuralPartialEq for FunctionNameSubsectionimpl StructuralPartialEq for ModuleNameSubsectionimpl StructuralPartialEq for Funcimpl StructuralPartialEq for VarUint64impl StructuralPartialEq for TableTypeimpl StructuralPartialEq for VarInt64impl StructuralPartialEq for Typeimpl StructuralPartialEq for Instructionimpl StructuralPartialEq for ValueTypeimpl StructuralPartialEq for TableDefinitionimpl StructuralPartialEq for Instructionsimpl StructuralPartialEq for Localimpl StructuralPartialEq for GlobalSectionimpl StructuralPartialEq for BlockTypeimpl StructuralPartialEq for TableSectionimpl StructuralPartialEq for ExportEntryimpl StructuralPartialEq for GlobalTypeimpl StructuralPartialEq for Sectionimpl StructuralPartialEq for FunctionTypeimpl StructuralPartialEq for Moduleimpl StructuralPartialEq for Uint8impl StructuralPartialEq for BrTableDataimpl StructuralPartialEq for ImportEntryimpl StructuralPartialEq for GlobalEntryimpl StructuralPartialEq for VarInt7impl StructuralPartialEq for InitExprimpl StructuralPartialEq for ElementSegmentimpl StructuralPartialEq for Uint64impl StructuralPartialEq for DataSegmentimpl StructuralPartialEq for TypeSectionimpl StructuralPartialEq for FunctionSectionimpl StructuralPartialEq for DataSectionimpl StructuralPartialEq for VarInt32impl StructuralPartialEq for ImportCountTypeimpl StructuralPartialEq for ImportSectionimpl StructuralPartialEq for MemorySectionimpl StructuralPartialEq for ElementSectionimpl StructuralPartialEq for CustomSectionimpl StructuralPartialEq for LocalNameSubsectionimpl StructuralPartialEq for Uint32impl StructuralPartialEq for FuncBodyimpl StructuralPartialEq for Internalimpl StructuralPartialEq for VarUint32impl StructuralPartialEq for RelocSectionimpl StructuralPartialEq for ExportSectionimpl StructuralPartialEq for CodeSectionimpl StructuralPartialEq for RelocationEntryimpl StructuralPartialEq for VarUint7impl StructuralPartialEq for NameSectionimpl StructuralPartialEq for VarUint1impl StructuralPartialEq for Externalimpl StructuralPartialEq for TableEntryDefinitionimpl StructuralPartialEq for MemoryTypeimpl StructuralPartialEq for ResizableLimitsimpl StructuralPartialEq for TableElementTypeimpl StructuralPartialEq for StartedWithimpl StructuralPartialEq for Wordsimpl StructuralPartialEq for Pagesimpl StructuralPartialEq for Pagesimpl StructuralPartialEq for Wordsimpl StructuralPartialEq for Bytesimpl StructuralPartialEq for Errnoimpl StructuralPartialEq for U128impl StructuralPartialEq for U256impl StructuralPartialEq for U512impl StructuralPartialEq for Errorimpl StructuralPartialEq for FromDecStrErrimpl StructuralPartialEq for FromStrRadixErrKindimpl<V, A> StructuralPartialEq for TArr<V, A>impl StructuralPartialEq for Equalimpl StructuralPartialEq for Greaterimpl<U> StructuralPartialEq for NInt<U> where
U: Unsigned + NonZero, impl StructuralPartialEq for B1impl StructuralPartialEq for Lessimpl<U, B> StructuralPartialEq for UInt<U, B>impl StructuralPartialEq for UTermimpl<U> StructuralPartialEq for PInt<U> where
U: Unsigned + NonZero, impl StructuralPartialEq for B0impl StructuralPartialEq for ATermimpl StructuralPartialEq for Z0impl StructuralPartialEq for FromBase58Errorimpl StructuralPartialEq for Languageimpl StructuralPartialEq for IsNormalizedimpl StructuralPartialEq for InvalidKeyLengthimpl StructuralPartialEq for MacErrorimpl StructuralPartialEq for Jacobianimpl StructuralPartialEq for RecoveryIdimpl StructuralPartialEq for Errorimpl StructuralPartialEq for Messageimpl StructuralPartialEq for PublicKeyimpl StructuralPartialEq for AffineStorageimpl StructuralPartialEq for SecretKeyimpl StructuralPartialEq for Scalarimpl StructuralPartialEq for Signatureimpl StructuralPartialEq for Affineimpl StructuralPartialEq for MacErrorimpl StructuralPartialEq for InvalidKeyLengthimpl StructuralPartialEq for u32x4impl StructuralPartialEq for Errorimpl StructuralPartialEq for VRFInOutimpl StructuralPartialEq for VRFOutputimpl StructuralPartialEq for SignatureErrorimpl StructuralPartialEq for ECQVCertPublicimpl StructuralPartialEq for Cosignatureimpl StructuralPartialEq for VRFProofBatchableimpl<K> StructuralPartialEq for ExtendedKey<K>impl StructuralPartialEq for Commitmentimpl StructuralPartialEq for Signatureimpl StructuralPartialEq for ChainCodeimpl StructuralPartialEq for VRFProofimpl StructuralPartialEq for MultiSignatureStageimpl StructuralPartialEq for PublicKeyimpl StructuralPartialEq for PublicKeyimpl StructuralPartialEq for TryReserveErrorimpl StructuralPartialEq for XxHash64impl StructuralPartialEq for XxHash32impl StructuralPartialEq for Abortedimpl StructuralPartialEq for PollNextimpl<T, E> StructuralPartialEq for TryChunksError<T, E>impl<T> StructuralPartialEq for AllowStdIo<T>impl<T> StructuralPartialEq for TrySendError<T>impl StructuralPartialEq for Canceledimpl StructuralPartialEq for SendErrorimpl StructuralPartialEq for TrieSpecimpl StructuralPartialEq for NodePlanimpl<HO> StructuralPartialEq for Record<HO>impl StructuralPartialEq for NibbleSlicePlanimpl StructuralPartialEq for NodeHandlePlanimpl<HO, CE> StructuralPartialEq for Error<HO, CE>impl<'a> StructuralPartialEq for Node<'a>impl<D> StructuralPartialEq for OwnedNode<D> where
D: Borrow<[u8]>, impl<'a> StructuralPartialEq for NodeHandle<'a>impl StructuralPartialEq for NibbleVecimpl<T, E> StructuralPartialEq for TrieError<T, E>impl<T> StructuralPartialEq for MemCounter<T>impl<T> StructuralPartialEq for NoopTracker<T>impl<R, Offset> StructuralPartialEq for Location<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<T> StructuralPartialEq for DebugInfoOffset<T>impl<R> StructuralPartialEq for CfaRule<R> where
R: Reader, impl StructuralPartialEq for SectionBaseAddressesimpl StructuralPartialEq for Rangeimpl<T> StructuralPartialEq for LocationListsOffset<T>impl<R, Offset> StructuralPartialEq for CompleteLineProgram<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<T> StructuralPartialEq for DebugRngListsBase<T>impl StructuralPartialEq for DwDefaultedimpl StructuralPartialEq for DwChildrenimpl<T> StructuralPartialEq for UnitSectionOffset<T>impl<'bases, Section, R> StructuralPartialEq for PartialFrameDescriptionEntry<'bases, Section, R> where
R: Reader,
Section: UnwindSection<R>, impl<T> StructuralPartialEq for EhFrameOffset<T>impl StructuralPartialEq for DwInlimpl StructuralPartialEq for Valueimpl StructuralPartialEq for DwoIdimpl StructuralPartialEq for DwUtimpl<Offset> StructuralPartialEq for UnitType<Offset> where
Offset: ReaderOffset, impl StructuralPartialEq for DwAccessimpl<R> StructuralPartialEq for LocationListEntry<R> where
R: Reader, impl<T> StructuralPartialEq for DebugStrOffsetsIndex<T>impl<R, Offset> StructuralPartialEq for LineProgramHeader<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl StructuralPartialEq for LineEncodingimpl StructuralPartialEq for BaseAddressesimpl<R, Offset> StructuralPartialEq for LineInstruction<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<R> StructuralPartialEq for Attribute<R> where
R: Reader, impl StructuralPartialEq for Abbreviationimpl StructuralPartialEq for DwDsimpl StructuralPartialEq for Pointerimpl StructuralPartialEq for DwIdximpl<T> StructuralPartialEq for DebugStrOffset<T>impl StructuralPartialEq for DwFormimpl StructuralPartialEq for BigEndianimpl StructuralPartialEq for DwEhPeimpl<R, Offset> StructuralPartialEq for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<T> StructuralPartialEq for DebugAbbrevOffset<T>impl StructuralPartialEq for ColumnTypeimpl StructuralPartialEq for DwAtimpl StructuralPartialEq for DwarfFileTypeimpl<R, Offset> StructuralPartialEq for FileEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<R, Offset> StructuralPartialEq for IncompleteLineProgram<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<T> StructuralPartialEq for DebugFrameOffset<T>impl StructuralPartialEq for DwLnctimpl<T> StructuralPartialEq for DebugStrOffsetsBase<T>impl<T> StructuralPartialEq for DebugMacroOffset<T>impl StructuralPartialEq for Encodingimpl StructuralPartialEq for DwEndimpl StructuralPartialEq for DwVirtualityimpl StructuralPartialEq for FileEntryFormatimpl StructuralPartialEq for Formatimpl StructuralPartialEq for DwCcimpl<R> StructuralPartialEq for EvaluationResult<R> where
R: Reader, impl StructuralPartialEq for DwAddrimpl StructuralPartialEq for AttributeSpecificationimpl<T> StructuralPartialEq for DebugAddrIndex<T>impl<T> StructuralPartialEq for ArangeEntry<T> where
T: Copy, impl<R, Offset> StructuralPartialEq for AttributeValue<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<T> StructuralPartialEq for UnitOffset<T>impl<T> StructuralPartialEq for RangeListsOffset<T>impl StructuralPartialEq for DwCfaimpl<T> StructuralPartialEq for DebugMacinfoOffset<T>impl<R> StructuralPartialEq for RegisterRule<R> where
R: Reader, impl<'bases, Section, R> StructuralPartialEq for CieOrFde<'bases, Section, R> where
R: Reader,
Section: UnwindSection<R>, impl StructuralPartialEq for Registerimpl<T> StructuralPartialEq for DebugLocListsIndex<T>impl StructuralPartialEq for SectionIdimpl<T> StructuralPartialEq for DieReference<T>impl StructuralPartialEq for DwLnsimpl StructuralPartialEq for DwIdimpl<R> StructuralPartialEq for EhFrame<R> where
R: Reader, impl<T> StructuralPartialEq for DebugAddrBase<T>impl<R, Offset> StructuralPartialEq for Operation<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl StructuralPartialEq for DwOpimpl StructuralPartialEq for RunTimeEndianimpl StructuralPartialEq for DwLangimpl<R> StructuralPartialEq for CallFrameInstruction<R> where
R: Reader, impl StructuralPartialEq for ReaderOffsetIdimpl<R> StructuralPartialEq for DebugFrame<R> where
R: Reader, impl<T> StructuralPartialEq for DebugTypesOffset<T>impl StructuralPartialEq for DwLleimpl StructuralPartialEq for ValueTypeimpl StructuralPartialEq for LineRowimpl StructuralPartialEq for DwOrdimpl<R, Offset> StructuralPartialEq for Piece<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl StructuralPartialEq for DwMacroimpl StructuralPartialEq for DebugTypeSignatureimpl<R> StructuralPartialEq for Expression<R> where
R: Reader, impl<T> StructuralPartialEq for DebugRngListsIndex<T>impl<T> StructuralPartialEq for DebugLineStrOffset<T>impl StructuralPartialEq for Errorimpl<T> StructuralPartialEq for DebugLocListsBase<T>impl<T> StructuralPartialEq for DebugLineOffset<T>impl StructuralPartialEq for DwDscimpl StructuralPartialEq for DwVisimpl StructuralPartialEq for DwTagimpl StructuralPartialEq for DwLneimpl StructuralPartialEq for LittleEndianimpl<R, Offset> StructuralPartialEq for UnitHeader<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl StructuralPartialEq for DwRleimpl StructuralPartialEq for DwAteimpl StructuralPartialEq for Augmentationimpl<R> StructuralPartialEq for UnwindTableRow<R> where
R: Reader, impl<'input, Endian> StructuralPartialEq for EndianSlice<'input, Endian> where
Endian: Endianity, impl<R, Offset> StructuralPartialEq for CommonInformationEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset, impl<R> StructuralPartialEq for EhFrameHdr<R> where
R: Reader, impl StructuralPartialEq for RelocationTargetimpl<Section> StructuralPartialEq for SymbolFlags<Section>impl StructuralPartialEq for SectionIndeximpl StructuralPartialEq for BigEndianimpl StructuralPartialEq for BinaryFormatimpl StructuralPartialEq for Errorimpl StructuralPartialEq for RelocationKindimpl<'data> StructuralPartialEq for Export<'data>impl StructuralPartialEq for Architectureimpl StructuralPartialEq for AddressSizeimpl StructuralPartialEq for Endiannessimpl StructuralPartialEq for SectionFlagsimpl StructuralPartialEq for ArchiveKindimpl<'data> StructuralPartialEq for ObjectMapEntry<'data>impl StructuralPartialEq for LittleEndianimpl StructuralPartialEq for ComdatKindimpl<'data> StructuralPartialEq for Import<'data>impl<'data> StructuralPartialEq for SymbolMapName<'data>impl StructuralPartialEq for SymbolKindimpl<'data> StructuralPartialEq for CompressedData<'data>impl StructuralPartialEq for CompressionFormatimpl<E> StructuralPartialEq for U32Bytes<E> where
E: Endian, impl<E> StructuralPartialEq for U64Bytes<E> where
E: Endian, impl StructuralPartialEq for SymbolScopeimpl StructuralPartialEq for SymbolIndeximpl<E> StructuralPartialEq for I64Bytes<E> where
E: Endian, impl<E> StructuralPartialEq for U16Bytes<E> where
E: Endian, impl<E> StructuralPartialEq for I16Bytes<E> where
E: Endian, impl<'data> StructuralPartialEq for Bytes<'data>impl StructuralPartialEq for SymbolSectionimpl<E> StructuralPartialEq for I32Bytes<E> where
E: Endian, impl StructuralPartialEq for RelocationEncodingimpl StructuralPartialEq for SectionKindimpl StructuralPartialEq for FileFlagsimpl StructuralPartialEq for TINFLStatusimpl StructuralPartialEq for StreamResultimpl StructuralPartialEq for CompressionStrategyimpl StructuralPartialEq for MZFlushimpl StructuralPartialEq for MZErrorimpl StructuralPartialEq for CompressionLevelimpl StructuralPartialEq for TDEFLFlushimpl StructuralPartialEq for DataFormatimpl StructuralPartialEq for TDEFLStatusimpl StructuralPartialEq for MZStatusimpl<Header, Extrinsic> StructuralPartialEq for Block<Header, Extrinsic> where
Extrinsic: MaybeSerialize, impl<Info> StructuralPartialEq for DispatchErrorWithPostInfo<Info> where
Info: Eq + PartialEq<Info> + Clone + Copy + Encode + Decode + Printable, impl<Address, Call, Signature, Extra> StructuralPartialEq for UncheckedExtrinsic<Address, Call, Signature, Extra> where
Extra: SignedExtension, impl<Number, Hash> StructuralPartialEq for Header<Number, Hash> where
Hash: Hash,
Number: Copy + Into<U256> + TryFrom<U256>, Implementors
impl<A: AssetId, B: Balance, OnDrop: HandleImbalanceDrop<A, B>, OppositeOnDrop: HandleImbalanceDrop<A, B>> StructuralPartialEq for frame_support::traits::tokens::fungibles::Imbalance<A, B, OnDrop, OppositeOnDrop>impl<B: Balance, OnDrop: HandleImbalanceDrop<B>, OppositeOnDrop: HandleImbalanceDrop<B>> StructuralPartialEq for frame_support::traits::tokens::fungible::Imbalance<B, OnDrop, OppositeOnDrop>