Trait StructuralPartialEq
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 Orderingimpl StructuralPartialEq for LayoutErrorimpl<T> StructuralPartialEq for NonZero<T>impl StructuralPartialEq for u128impl StructuralPartialEq for ParseFloatErrorimpl StructuralPartialEq for i128impl<T> StructuralPartialEq for [T]impl StructuralPartialEq for RangeFullimpl<T> StructuralPartialEq for Wrapping<T>impl<T> StructuralPartialEq for Bound<T>impl StructuralPartialEq for CharCaseimpl StructuralPartialEq for FpCategoryimpl StructuralPartialEq for Ipv6Addrimpl<T> StructuralPartialEq for Option<T>impl StructuralPartialEq for IntErrorKindimpl StructuralPartialEq for Orderingimpl StructuralPartialEq for FormattingOptionsimpl<'a> StructuralPartialEq for Utf8Chunk<'a>impl<T: PointeeSized> StructuralPartialEq for TraitImpl<T>impl StructuralPartialEq for AtomicOrderingimpl<T: ?Sized> StructuralPartialEq for ManuallyDrop<T>impl StructuralPartialEq for Layoutimpl StructuralPartialEq for u64impl StructuralPartialEq for i64impl<T, N: usize> StructuralPartialEq for [T; N]impl StructuralPartialEq for ParseIntErrorimpl<Y, R> StructuralPartialEq for CoroutineState<Y, R>impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>impl StructuralPartialEq for TryFromCharErrorimpl StructuralPartialEq for Ipv4Addrimpl StructuralPartialEq for SocketAddrV6impl<T, E> StructuralPartialEq for Result<T, E>impl StructuralPartialEq for DebugAsHeximpl StructuralPartialEq for SearchStepimpl StructuralPartialEq for RawWakerVTableimpl StructuralPartialEq for u32impl StructuralPartialEq for i32impl StructuralPartialEq for ()impl<B, C> StructuralPartialEq for ControlFlow<B, C>impl<T> StructuralPartialEq for Reverse<T>impl<Idx> StructuralPartialEq for RangeInclusive<Idx>impl StructuralPartialEq for DecodeUtf16Errorimpl<'a> StructuralPartialEq for PhantomInvariantLifetime<'a>impl StructuralPartialEq for IpAddrimpl StructuralPartialEq for SocketAddrV4impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>impl StructuralPartialEq for Signimpl<'a> StructuralPartialEq for Utf8Pattern<'a>impl StructuralPartialEq for RawWakerimpl StructuralPartialEq for Alignmentimpl StructuralPartialEq for u16impl StructuralPartialEq for CpuidResultimpl StructuralPartialEq for i16impl<'a> StructuralPartialEq for PhantomContravariantLifetime<'a>impl StructuralPartialEq for strimpl StructuralPartialEq for PhantomPinnedimpl<Idx> StructuralPartialEq for RangeTo<Idx>impl StructuralPartialEq for CharTryFromErrorimpl StructuralPartialEq for FromBytesUntilNulErrorimpl StructuralPartialEq for SocketAddrimpl<Idx> StructuralPartialEq for RangeFrom<Idx>impl StructuralPartialEq for Errorimpl StructuralPartialEq for ParseBoolErrorimpl<T> StructuralPartialEq for Poll<T>impl StructuralPartialEq for SimdAlignimpl StructuralPartialEq for u8impl<T> StructuralPartialEq for (T)impl StructuralPartialEq for i8impl StructuralPartialEq for charimpl<T: PointeeSized> StructuralPartialEq for PhantomData<T>impl<Idx> StructuralPartialEq for RangeFrom<Idx>impl StructuralPartialEq for ParseCharErrorimpl StructuralPartialEq for FromBytesWithNulErrorimpl StructuralPartialEq for AddrParseErrorimpl<Idx> StructuralPartialEq for RangeInclusive<Idx>impl StructuralPartialEq for Assumeimpl StructuralPartialEq for Alignmentimpl<'a> StructuralPartialEq for PhantomCovariantLifetime<'a>impl StructuralPartialEq for Utf8Errorimpl StructuralPartialEq for TryFromFloatSecsErrorimpl StructuralPartialEq for usizeimpl StructuralPartialEq for AllocErrorimpl StructuralPartialEq for isizeimpl StructuralPartialEq for Localityimpl StructuralPartialEq for boolimpl<T: PointeeSized> StructuralPartialEq for &Timpl<Idx> StructuralPartialEq for Range<Idx>impl StructuralPartialEq for AsciiCharimpl<T> StructuralPartialEq for Saturating<T>impl StructuralPartialEq for CStrimpl StructuralPartialEq for Ipv6MulticastScopeimpl StructuralPartialEq for TryFromIntErrorimpl<Idx> StructuralPartialEq for Range<Idx>impl<T> StructuralPartialEq for Exclusive<T>impl StructuralPartialEq for GetDisjointMutErrorimpl StructuralPartialEq for Duration