Trait StructuralPartialEq
pub trait StructuralPartialEq
Required trait for constants used in pattern matches.
Constants are only allowed as patterns if (a) their type implements
PartialEq, and (b) interpreting the value of the constant as a pattern
is equivalent to calling PartialEq. This ensures that constants used as
patterns cannot expose implementation details in an unexpected way or
cause semver hazards.
This trait ensures point (b).
Any type that derives PartialEq automatically implements this trait.
Implementing this trait (which is unstable) is a way for type authors to explicitly allow
comparing const values of this type; that operation will recursively compare all fields
(including private fields), even if that behavior differs from PartialEq. This can make it
semver-breaking to add further private fields to a type.
Implementors
impl StructuralPartialEq for ()impl StructuralPartialEq for AddrKindimpl StructuralPartialEq for AddrParseErrorimpl StructuralPartialEq for Alignmentimpl StructuralPartialEq for Alignmentimpl StructuralPartialEq for AlignmentEnumimpl StructuralPartialEq for AllocErrorimpl StructuralPartialEq for AsciiCharimpl StructuralPartialEq for Assumeimpl StructuralPartialEq for AtomicOrderingimpl StructuralPartialEq for BiasedFpimpl StructuralPartialEq for CStrimpl StructuralPartialEq for CharCaseimpl StructuralPartialEq for CharErrorKindimpl StructuralPartialEq for CharTryFromErrorimpl StructuralPartialEq for CodePointimpl StructuralPartialEq for CodePointInnerimpl StructuralPartialEq for CpuidResultimpl StructuralPartialEq for DebugAsHeximpl StructuralPartialEq for Decimalimpl StructuralPartialEq for DecimalSeqimpl StructuralPartialEq for DecodeUtf16Errorimpl StructuralPartialEq for Decodedimpl StructuralPartialEq for Durationimpl StructuralPartialEq for Errorimpl StructuralPartialEq for ErrorKindimpl StructuralPartialEq for FieldIdimpl StructuralPartialEq for FloatErrorKindimpl StructuralPartialEq for FormattingOptionsimpl StructuralPartialEq for FpCategoryimpl StructuralPartialEq for FromBytesUntilNulErrorimpl StructuralPartialEq for FromBytesWithNulErrorimpl StructuralPartialEq for FullDecodedimpl StructuralPartialEq for GetDisjointMutErrorimpl StructuralPartialEq for I32NotAllOnesimpl StructuralPartialEq for I64NotAllOnesimpl StructuralPartialEq for IndexRangeimpl StructuralPartialEq for IntErrorKindimpl StructuralPartialEq for IpAddrimpl StructuralPartialEq for Ipv4Addrimpl StructuralPartialEq for Ipv6Addrimpl StructuralPartialEq for Ipv6MulticastScopeimpl StructuralPartialEq for Layoutimpl StructuralPartialEq for LayoutErrorimpl StructuralPartialEq for Localityimpl StructuralPartialEq for Nanosecondsimpl StructuralPartialEq for NonZeroCharInnerimpl StructuralPartialEq for NonZeroI128Innerimpl StructuralPartialEq for NonZeroI16Innerimpl StructuralPartialEq for NonZeroI32Innerimpl StructuralPartialEq for NonZeroI64Innerimpl StructuralPartialEq for NonZeroI8Innerimpl StructuralPartialEq for NonZeroIsizeInnerimpl StructuralPartialEq for NonZeroU128Innerimpl StructuralPartialEq for NonZeroU16Innerimpl StructuralPartialEq for NonZeroU32Innerimpl StructuralPartialEq for NonZeroU64Innerimpl StructuralPartialEq for NonZeroU8Innerimpl StructuralPartialEq for NonZeroUsizeInnerimpl StructuralPartialEq for Orderingimpl StructuralPartialEq for Orderingimpl StructuralPartialEq for ParseBoolErrorimpl StructuralPartialEq for ParseCharErrorimpl StructuralPartialEq for ParseFloatErrorimpl StructuralPartialEq for ParseIntErrorimpl StructuralPartialEq for PhantomPinnedimpl StructuralPartialEq for RangeFullimpl StructuralPartialEq for RawWakerimpl StructuralPartialEq for RawWakerVTableimpl StructuralPartialEq for SearchStepimpl StructuralPartialEq for SeekFromimpl StructuralPartialEq for Signimpl StructuralPartialEq for Signimpl StructuralPartialEq for SimdAlignimpl StructuralPartialEq for SocketAddrimpl StructuralPartialEq for SocketAddrV4impl StructuralPartialEq for SocketAddrV6impl StructuralPartialEq for TryFromCharErrorimpl StructuralPartialEq for TryFromFloatSecsErrorimpl StructuralPartialEq for TryFromFloatSecsErrorKindimpl StructuralPartialEq for TryFromIntErrorimpl StructuralPartialEq for U32NotAllOnesimpl StructuralPartialEq for U64NotAllOnesimpl StructuralPartialEq for UsizeNoHighBitimpl StructuralPartialEq for Utf8Errorimpl StructuralPartialEq for VariantIdimpl StructuralPartialEq for Wtf8impl StructuralPartialEq for boolimpl StructuralPartialEq for charimpl StructuralPartialEq for i128impl StructuralPartialEq for i16impl StructuralPartialEq for i32impl StructuralPartialEq for i64impl StructuralPartialEq for i8impl StructuralPartialEq for isizeimpl StructuralPartialEq for strimpl StructuralPartialEq for svpatternimpl StructuralPartialEq for svprfopimpl StructuralPartialEq for u128impl StructuralPartialEq for u16impl StructuralPartialEq for u32impl StructuralPartialEq for u64impl StructuralPartialEq for u8impl StructuralPartialEq for usizeimpl<'a> StructuralPartialEq for Part<'a>impl<'a> StructuralPartialEq for PhantomContravariantLifetime<'a>impl<'a> StructuralPartialEq for PhantomCovariantLifetime<'a>impl<'a> StructuralPartialEq for PhantomInvariantLifetime<'a>impl<'a> StructuralPartialEq for Utf8Chunk<'a>impl<'a> StructuralPartialEq for Utf8Pattern<'a>impl<A, Z, Y, X, W, V, U, T> StructuralPartialEq for (A, Z, Y, X, W, V, U, T)impl<B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (B, A, Z, Y, X, W, V, U, T)impl<B: PartialEq, C: PartialEq> StructuralPartialEq for ControlFlow<B, C>impl<C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (C, B, A, Z, Y, X, W, V, U, T)impl<D, C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (D, C, B, A, Z, Y, X, W, V, U, T)impl<E, D, C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (E, D, C, B, A, Z, Y, X, W, V, U, T)impl<Idx: PartialEq> StructuralPartialEq for Range<Idx>impl<Idx: PartialEq> StructuralPartialEq for Range<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeFrom<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeFrom<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeInclusive<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeInclusive<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeTo<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeToInclusive<Idx>impl<Idx: PartialEq> StructuralPartialEq for RangeToInclusive<Idx>impl<T> StructuralPartialEq for (T,)impl<T> StructuralPartialEq for NonZero<T> where T: ZeroablePrimitive + StructuralPartialEq,impl<T> StructuralPartialEq for Option<T>impl<T> StructuralPartialEq for SyncView<T> where T: Sync + StructuralPartialEq + ?Sized,impl<T> StructuralPartialEq for [T]impl<T, const N: usize> StructuralPartialEq for [T; N]impl<T: ?Sized> StructuralPartialEq for ManuallyDrop<T>impl<T: ?Sized> StructuralPartialEq for MaybeDangling<T>impl<T: PartialEq + PointeeSized> StructuralPartialEq for TraitImpl<T>impl<T: PartialEq> StructuralPartialEq for Bound<T>impl<T: PartialEq> StructuralPartialEq for Complex<T>impl<T: PartialEq> StructuralPartialEq for Cursor<T>impl<T: PartialEq> StructuralPartialEq for Poll<T>impl<T: PartialEq> StructuralPartialEq for Reverse<T>impl<T: PartialEq> StructuralPartialEq for Saturating<T>impl<T: PartialEq> StructuralPartialEq for Wrapping<T>impl<T: PartialEq, E: PartialEq> StructuralPartialEq for Result<T, E>impl<T: PointeeSized> StructuralPartialEq for &Timpl<T: PointeeSized> StructuralPartialEq for PhantomData<T>impl<U, T> StructuralPartialEq for (U, T)impl<V, U, T> StructuralPartialEq for (V, U, T)impl<W, V, U, T> StructuralPartialEq for (W, V, U, T)impl<X, W, V, U, T> StructuralPartialEq for (X, W, V, U, T)impl<Y, X, W, V, U, T> StructuralPartialEq for (Y, X, W, V, U, T)impl<Y: PartialEq, R: PartialEq> StructuralPartialEq for CoroutineState<Y, R>impl<Z, Y, X, W, V, U, T> StructuralPartialEq for (Z, Y, X, W, V, U, T)