Skip to main content

StructuralPartialEq

Trait StructuralPartialEq 

Source
pub trait StructuralPartialEq { }
๐Ÿ”ฌThis is a nightly-only experimental API. (structural_match #31434)
Expand description

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ยง

Sourceยง

impl StructuralPartialEq for AsciiChar

1.0.0 ยท Sourceยง

impl StructuralPartialEq for core::cmp::Ordering

1.64.0 ยท Sourceยง

impl StructuralPartialEq for FromBytesWithNulError

1.28.0 ยท Sourceยง

impl StructuralPartialEq for core::fmt::Alignment

Sourceยง

impl StructuralPartialEq for DebugAsHex

Sourceยง

impl StructuralPartialEq for Sign

Sourceยง

impl StructuralPartialEq for AtomicOrdering

1.0.0 ยท Sourceยง

impl StructuralPartialEq for FpCategory

1.55.0 ยท Sourceยง

impl StructuralPartialEq for IntErrorKind

Sourceยง

impl StructuralPartialEq for SearchStep

1.0.0 ยท Sourceยง

impl StructuralPartialEq for core::sync::atomic::Ordering

Sourceยง

impl StructuralPartialEq for bool

Sourceยง

impl StructuralPartialEq for char

Sourceยง

impl StructuralPartialEq for i8

Sourceยง

impl StructuralPartialEq for i16

Sourceยง

impl StructuralPartialEq for i32

Sourceยง

impl StructuralPartialEq for i64

Sourceยง

impl StructuralPartialEq for i128

Sourceยง

impl StructuralPartialEq for isize

Sourceยง

impl StructuralPartialEq for str

Sourceยง

impl StructuralPartialEq for u8

Sourceยง

impl StructuralPartialEq for u16

Sourceยง

impl StructuralPartialEq for u32

Sourceยง

impl StructuralPartialEq for u64

Sourceยง

impl StructuralPartialEq for u128

Sourceยง

impl StructuralPartialEq for ()

Sourceยง

impl StructuralPartialEq for usize

1.28.0 ยท Sourceยง

impl StructuralPartialEq for Layout

1.34.0 ยท Sourceยง

impl StructuralPartialEq for CharTryFromError

1.9.0 ยท Sourceยง

impl StructuralPartialEq for DecodeUtf16Error

1.64.0 ยท Sourceยง

impl StructuralPartialEq for CStr

1.0.0 ยท Sourceยง

impl StructuralPartialEq for Error

Sourceยง

impl StructuralPartialEq for FormattingOptions

1.0.0 ยท Sourceยง

impl StructuralPartialEq for ParseIntError

1.34.0 ยท Sourceยง

impl StructuralPartialEq for TryFromIntError

1.0.0 ยท Sourceยง

impl StructuralPartialEq for RangeFull

Sourceยง

impl StructuralPartialEq for core::ptr::Alignment

1.0.0 ยท Sourceยง

impl StructuralPartialEq for Utf8Error

1.3.0 ยท Sourceยง

impl StructuralPartialEq for Duration

1.66.0 ยท Sourceยง

impl StructuralPartialEq for TryFromFloatSecsError

1.55.0 ยท Sourceยง

impl<B, C> StructuralPartialEq for ControlFlow<B, C>

1.0.0 ยท Sourceยง

impl<Idx> StructuralPartialEq for Range<Idx>

1.0.0 ยท Sourceยง

impl<Idx> StructuralPartialEq for RangeFrom<Idx>

1.26.0 ยท Sourceยง

impl<Idx> StructuralPartialEq for RangeInclusive<Idx>

1.0.0 ยท Sourceยง

impl<Idx> StructuralPartialEq for RangeTo<Idx>

1.26.0 ยท Sourceยง

impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>

1.17.0 ยท Sourceยง

impl<T> StructuralPartialEq for Bound<T>

Sourceยง

impl<T> StructuralPartialEq for [T]

1.0.0 ยท Sourceยง

impl<T, E> StructuralPartialEq for Result<T, E>

Sourceยง

impl<T, const N: usize> StructuralPartialEq for [T; N]

Sourceยง

impl<T: PointeeSized> StructuralPartialEq for &T

1.20.0 ยท Sourceยง

impl<T: ?Sized> StructuralPartialEq for ManuallyDrop<T>