Trait core::marker::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.

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

source

impl StructuralPartialEq for AsciiChar

1.0.0source

impl StructuralPartialEq for core::cmp::Ordering

1.28.0source

impl StructuralPartialEq for core::fmt::Alignment

1.7.0source

impl StructuralPartialEq for IpAddr

source

impl StructuralPartialEq for Ipv6MulticastScope

1.0.0source

impl StructuralPartialEq for SocketAddr

1.0.0source

impl StructuralPartialEq for FpCategory

1.55.0source

impl StructuralPartialEq for IntErrorKind

source

impl StructuralPartialEq for SearchStep

1.0.0source

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

source

impl StructuralPartialEq for AllocError

1.28.0source

impl StructuralPartialEq for Layout

1.50.0source

impl StructuralPartialEq for LayoutError

1.27.0source

impl StructuralPartialEq for CpuidResult

Available on x86 or x86-64 only.
1.34.0source

impl StructuralPartialEq for CharTryFromError

1.9.0source

impl StructuralPartialEq for DecodeUtf16Error

1.20.0source

impl StructuralPartialEq for ParseCharError

1.59.0source

impl StructuralPartialEq for TryFromCharError

1.69.0source

impl StructuralPartialEq for FromBytesUntilNulError

1.64.0source

impl StructuralPartialEq for FromBytesWithNulError

1.0.0source

impl StructuralPartialEq for Error

source

impl StructuralPartialEq for Assume

1.0.0source

impl StructuralPartialEq for AddrParseError

1.0.0source

impl StructuralPartialEq for Ipv4Addr

1.0.0source

impl StructuralPartialEq for Ipv6Addr

1.0.0source

impl StructuralPartialEq for SocketAddrV4

1.0.0source

impl StructuralPartialEq for SocketAddrV6

1.0.0source

impl StructuralPartialEq for ParseFloatError

1.0.0source

impl StructuralPartialEq for ParseIntError

1.34.0source

impl StructuralPartialEq for TryFromIntError

1.0.0source

impl StructuralPartialEq for RangeFull

source

impl StructuralPartialEq for core::ptr::Alignment

1.0.0source

impl StructuralPartialEq for ParseBoolError

1.0.0source

impl StructuralPartialEq for Utf8Error

1.36.0source

impl StructuralPartialEq for RawWaker

1.36.0source

impl StructuralPartialEq for RawWakerVTable

1.3.0source

impl StructuralPartialEq for Duration

1.66.0source

impl StructuralPartialEq for TryFromFloatSecsError

1.33.0source

impl StructuralPartialEq for PhantomPinned

1.10.0source

impl<'a> StructuralPartialEq for Location<'a>

1.79.0source

impl<'a> StructuralPartialEq for Utf8Chunk<'a>

1.55.0source

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

1.0.0source

impl<Idx> StructuralPartialEq for Range<Idx>

1.0.0source

impl<Idx> StructuralPartialEq for RangeFrom<Idx>

1.26.0source

impl<Idx> StructuralPartialEq for RangeInclusive<Idx>

1.0.0source

impl<Idx> StructuralPartialEq for RangeTo<Idx>

1.26.0source

impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>

1.17.0source

impl<T> StructuralPartialEq for Bound<T>

1.0.0source

impl<T> StructuralPartialEq for Option<T>

1.36.0source

impl<T> StructuralPartialEq for Poll<T>

source

impl<T> StructuralPartialEq for [T]

source

impl<T> StructuralPartialEq for (T鈧, T鈧, 鈥, T鈧)

This trait is implemented for tuples up to twelve items long.

1.19.0source

impl<T> StructuralPartialEq for Reverse<T>

source

impl<T> StructuralPartialEq for NonZero<T>

1.74.0source

impl<T> StructuralPartialEq for Saturating<T>

1.0.0source

impl<T> StructuralPartialEq for Wrapping<T>

1.0.0source

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

source

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

source

impl<T: ?Sized> StructuralPartialEq for &T

1.20.0source

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

source

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

source

impl<Y, R> StructuralPartialEq for CoroutineState<Y, R>