std::marker::StructuralPartialEq - Rust
Description: API documentation for the Rust `StructuralPartialEq` trait in crate `std`.
Keywords: rust, rustlang, rust-lang, StructuralPartialEq

# [−][src]Trait std::marker::StructuralPartialEq

    #[lang = "structural_peq"]pub trait StructuralPartialEq { }

🔬 This is a nightly-only experimental API. (`structural_match` #31434)

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<'a> StructuralPartialEq for Utf8LossyChunk<'a>`[src]

Loading content...

## Implementors

### `impl StructuralPartialEq for BacktraceStatus`[src]

### `impl StructuralPartialEq for std::cmp::Ordering`[src]

### `impl StructuralPartialEq for TryReserveError`[src]

### `impl StructuralPartialEq for VarError`[src]

### `impl StructuralPartialEq for ErrorKind`[src]

### `impl StructuralPartialEq for SeekFrom`[src]

### `impl StructuralPartialEq for IpAddr`[src]

### `impl StructuralPartialEq for Ipv6MulticastScope`[src]

### `impl StructuralPartialEq for Shutdown`[src]

### `impl StructuralPartialEq for SocketAddr`[src]

### `impl StructuralPartialEq for FpCategory`[src]

### `impl StructuralPartialEq for IntErrorKind`[src]

### `impl StructuralPartialEq for SearchStep`[src]

### `impl StructuralPartialEq for std::sync::atomic::Ordering`[src]

### `impl StructuralPartialEq for RecvTimeoutError`[src]

### `impl StructuralPartialEq for TryRecvError`[src]

### `impl StructuralPartialEq for AllocError`[src]

### `impl StructuralPartialEq for Layout`[src]

### `impl StructuralPartialEq for LayoutErr`[src]

### `impl StructuralPartialEq for TypeId`[src]

### `impl StructuralPartialEq for CharTryFromError`[src]

### `impl StructuralPartialEq for DecodeUtf16Error`[src]

### `impl StructuralPartialEq for ParseCharError`[src]

### `impl StructuralPartialEq for CString`[src]

### `impl StructuralPartialEq for FromBytesWithNulError`[src]

### `impl StructuralPartialEq for FromVecWithNulError`[src]

### `impl StructuralPartialEq for IntoStringError`[src]

### `impl StructuralPartialEq for NulError`[src]

### `impl StructuralPartialEq for Error`[src]

### `impl StructuralPartialEq for FileType`[src]

### `impl StructuralPartialEq for Permissions`[src]

### `impl StructuralPartialEq for PhantomPinned`[src]

### `impl StructuralPartialEq for AddrParseError`[src]

### `impl StructuralPartialEq for NonZeroI8`[src]

### `impl StructuralPartialEq for NonZeroI16`[src]

### `impl StructuralPartialEq for NonZeroI32`[src]

### `impl StructuralPartialEq for NonZeroI64`[src]

### `impl StructuralPartialEq for NonZeroI128`[src]

### `impl StructuralPartialEq for NonZeroIsize`[src]

### `impl StructuralPartialEq for NonZeroU8`[src]

### `impl StructuralPartialEq for NonZeroU16`[src]

### `impl StructuralPartialEq for NonZeroU32`[src]

### `impl StructuralPartialEq for NonZeroU64`[src]

### `impl StructuralPartialEq for NonZeroU128`[src]

### `impl StructuralPartialEq for NonZeroUsize`[src]

### `impl StructuralPartialEq for ParseFloatError`[src]

### `impl StructuralPartialEq for ParseIntError`[src]

### `impl StructuralPartialEq for TryFromIntError`[src]

### `impl StructuralPartialEq for RangeFull`[src]

### `impl StructuralPartialEq for NoneError`[src]

### `impl StructuralPartialEq for UCred`[src]

### `impl StructuralPartialEq for StripPrefixError`[src]

### `impl StructuralPartialEq for ExitStatus`[src]

### `impl StructuralPartialEq for Output`[src]

### `impl StructuralPartialEq for ParseBoolError`[src]

### `impl StructuralPartialEq for Utf8Error`[src]

### `impl StructuralPartialEq for FromUtf8Error`[src]

### `impl StructuralPartialEq for RecvError`[src]

### `impl StructuralPartialEq for WaitTimeoutResult`[src]

### `impl StructuralPartialEq for RawWaker`[src]

### `impl StructuralPartialEq for RawWakerVTable`[src]

### `impl StructuralPartialEq for AccessError`[src]

### `impl StructuralPartialEq for ThreadId`[src]

### `impl StructuralPartialEq for Duration`[src]

### `impl StructuralPartialEq for Instant`[src]

### `impl StructuralPartialEq for SystemTime`[src]

### `impl<'a> StructuralPartialEq for Component<'a>`[src]

### `impl<'a> StructuralPartialEq for Prefix<'a>`[src]

### `impl<'a> StructuralPartialEq for Location<'a>`[src]

### `impl<B, C> StructuralPartialEq for ControlFlow<B, C>`[src]

### `impl<Idx> StructuralPartialEq for Range<Idx>`[src]

### `impl<Idx> StructuralPartialEq for RangeFrom<Idx>`[src]

### `impl<Idx> StructuralPartialEq for RangeInclusive<Idx>`[src]

### `impl<Idx> StructuralPartialEq for RangeTo<Idx>`[src]

### `impl<Idx> StructuralPartialEq for RangeToInclusive<Idx>`[src]

### `impl<T> StructuralPartialEq for Bound<T>`[src]

### `impl<T> StructuralPartialEq for Option<T>`[src]

### `impl<T> StructuralPartialEq for TrySendError<T>`[src]

### `impl<T> StructuralPartialEq for Poll<T>`[src]

### `impl<T> StructuralPartialEq for Reverse<T>`[src]

### `impl<T> StructuralPartialEq for BTreeSet<T>`[src]

### `impl<T> StructuralPartialEq for Cursor<T>`[src]

### `impl<T> StructuralPartialEq for PhantomData<T> where
T: ?Sized,` [src]

### `impl<T> StructuralPartialEq for ManuallyDrop<T> where
T: ?Sized,` [src]

### `impl<T> StructuralPartialEq for Wrapping<T>`[src]

### `impl<T> StructuralPartialEq for SendError<T>`[src]

### `impl<T, E> StructuralPartialEq for Result<T, E>`[src]

### `impl<Y, R> StructuralPartialEq for GeneratorState<Y, R>`[src]

Loading content...