pub trait PartialEq<Rhs = Self>where
Rhs: ?Sized,{
// Required method
fn eq(&self, other: &Rhs) -> bool;
// Provided method
fn ne(&self, other: &Rhs) -> bool { ... }
}
Expand description
Trait for comparisons using the equality operator.
Implementing this trait for types provides the ==
and !=
operators for
those types.
x.eq(y)
can also be written x == y
, and x.ne(y)
can be written x != y
.
We use the easier-to-read infix notation in the remainder of this documentation.
This trait allows for comparisons using the equality operator, for types
that do not have a full equivalence relation. For example, in floating point
numbers NaN != NaN
, so floating point types implement PartialEq
but not
Eq
. Formally speaking, when Rhs == Self
, this trait corresponds
to a partial equivalence relation.
Implementations must ensure that eq
and ne
are consistent with each other:
a != b
if and only if!(a == b)
.
The default implementation of ne
provides this consistency and is almost
always sufficient. It should not be overridden without very good reason.
If PartialOrd
or Ord
are also implemented for Self
and Rhs
, their methods must also
be consistent with PartialEq
(see the documentation of those traits for the exact
requirements). It’s easy to accidentally make them disagree by deriving some of the traits and
manually implementing others.
The equality relation ==
must satisfy the following conditions
(for all a
, b
, c
of type A
, B
, C
):
-
Symmetry: if
A: PartialEq<B>
andB: PartialEq<A>
, thena == b
impliesb == a
; and -
Transitivity: if
A: PartialEq<B>
andB: PartialEq<C>
andA: PartialEq<C>
, thena == b
andb == c
impliesa == c
. This must also work for longer chains, such as whenA: PartialEq<B>
,B: PartialEq<C>
,C: PartialEq<D>
, andA: PartialEq<D>
all exist.
Note that the B: PartialEq<A>
(symmetric) and A: PartialEq<C>
(transitive) impls are not forced to exist, but these requirements apply
whenever they do exist.
Violating these requirements is a logic error. The behavior resulting from a logic error is not
specified, but users of the trait must ensure that such logic errors do not result in
undefined behavior. This means that unsafe
code must not rely on the correctness of these
methods.
§Cross-crate considerations
Upholding the requirements stated above can become tricky when one crate implements PartialEq
for a type of another crate (i.e., to allow comparing one of its own types with a type from the
standard library). The recommendation is to never implement this trait for a foreign type. In
other words, such a crate should do impl PartialEq<ForeignType> for LocalType
, but it should
not do impl PartialEq<LocalType> for ForeignType
.
This avoids the problem of transitive chains that criss-cross crate boundaries: for all local
types T
, you may assume that no other crate will add impl
s that allow comparing T == U
. In
other words, if other crates add impl
s that allow building longer transitive chains U1 == ... == T == V1 == ...
, then all the types that appear to the right of T
must be types that the
crate defining T
already knows about. This rules out transitive chains where downstream crates
can add new impl
s that “stitch together” comparisons of foreign types in ways that violate
transitivity.
Not having such foreign impl
s also avoids forward compatibility issues where one crate adding
more PartialEq
implementations can cause build failures in downstream crates.
§Derivable
This trait can be used with #[derive]
. When derive
d on structs, two
instances are equal if all fields are equal, and not equal if any fields
are not equal. When derive
d on enums, two instances are equal if they
are the same variant and all fields are equal.
§How can I implement PartialEq
?
An example implementation for a domain in which two books are considered the same book if their ISBN matches, even if the formats differ:
enum BookFormat {
Paperback,
Hardback,
Ebook,
}
struct Book {
isbn: i32,
format: BookFormat,
}
impl PartialEq for Book {
fn eq(&self, other: &Self) -> bool {
self.isbn == other.isbn
}
}
let b1 = Book { isbn: 3, format: BookFormat::Paperback };
let b2 = Book { isbn: 3, format: BookFormat::Ebook };
let b3 = Book { isbn: 10, format: BookFormat::Paperback };
assert!(b1 == b2);
assert!(b1 != b3);
§How can I compare two different types?
The type you can compare with is controlled by PartialEq
’s type parameter.
For example, let’s tweak our previous code a bit:
// The derive implements <BookFormat> == <BookFormat> comparisons
#[derive(PartialEq)]
enum BookFormat {
Paperback,
Hardback,
Ebook,
}
struct Book {
isbn: i32,
format: BookFormat,
}
// Implement <Book> == <BookFormat> comparisons
impl PartialEq<BookFormat> for Book {
fn eq(&self, other: &BookFormat) -> bool {
self.format == *other
}
}
// Implement <BookFormat> == <Book> comparisons
impl PartialEq<Book> for BookFormat {
fn eq(&self, other: &Book) -> bool {
*self == other.format
}
}
let b1 = Book { isbn: 3, format: BookFormat::Paperback };
assert!(b1 == BookFormat::Paperback);
assert!(BookFormat::Ebook != b1);
By changing impl PartialEq for Book
to impl PartialEq<BookFormat> for Book
,
we allow BookFormat
s to be compared with Book
s.
A comparison like the one above, which ignores some fields of the struct,
can be dangerous. It can easily lead to an unintended violation of the
requirements for a partial equivalence relation. For example, if we kept
the above implementation of PartialEq<Book>
for BookFormat
and added an
implementation of PartialEq<Book>
for Book
(either via a #[derive]
or
via the manual implementation from the first example) then the result would
violate transitivity:
#[derive(PartialEq)]
enum BookFormat {
Paperback,
Hardback,
Ebook,
}
#[derive(PartialEq)]
struct Book {
isbn: i32,
format: BookFormat,
}
impl PartialEq<BookFormat> for Book {
fn eq(&self, other: &BookFormat) -> bool {
self.format == *other
}
}
impl PartialEq<Book> for BookFormat {
fn eq(&self, other: &Book) -> bool {
*self == other.format
}
}
fn main() {
let b1 = Book { isbn: 1, format: BookFormat::Paperback };
let b2 = Book { isbn: 2, format: BookFormat::Paperback };
assert!(b1 == BookFormat::Paperback);
assert!(BookFormat::Paperback == b2);
// The following should hold by transitivity but doesn't.
assert!(b1 == b2); // <-- PANICS
}
§Examples
let x: u32 = 0;
let y: u32 = 1;
assert_eq!(x == y, false);
assert_eq!(x.eq(&y), false);
Required Methods§
Provided Methods§
Implementors§
impl PartialEq for AnsiColor
impl PartialEq for Color
impl PartialEq for Action
impl PartialEq for State
impl PartialEq for DependencyKind
impl PartialEq for Applicability
impl PartialEq for DiagnosticLevel
impl PartialEq for Edition
impl PartialEq for Message
impl PartialEq for Cfg
impl PartialEq for CfgExpr
impl PartialEq for Platform
impl PartialEq for ArgPredicate
impl PartialEq for ValueHint
impl PartialEq for ContextKind
impl PartialEq for ContextValue
impl PartialEq for clap_builder::error::kind::ErrorKind
impl PartialEq for ValueSource
impl PartialEq for clap_builder::util::color::ColorChoice
impl PartialEq for colorchoice::ColorChoice
impl PartialEq for IndexType
impl PartialEq for Container
impl PartialEq for StackFrameOffset
impl PartialEq for UnwindOperation
impl PartialEq for nom::error::ErrorKind
impl PartialEq for VerboseErrorKind
impl PartialEq for Needed
impl PartialEq for Endianness
impl PartialEq for CompareResult
impl PartialEq for oneshot_uniffi::errors::RecvTimeoutError
impl PartialEq for oneshot_uniffi::errors::TryRecvError
impl PartialEq for plain::error::Error
impl PartialEq for Endian
impl PartialEq for Op
impl PartialEq for Category
impl PartialEq for serde_json::value::Value
impl PartialEq for StrSimError
impl PartialEq for Offset
impl PartialEq for toml::ser::Error
impl PartialEq for toml::value::Value
impl PartialEq for uniffi_bindgen::bindings::kotlin::gen_kotlin::ImportRequirement
impl PartialEq for uniffi_bindgen::bindings::python::gen_python::ImportRequirement
impl PartialEq for FfiType
impl PartialEq for ErrorMetadata
impl PartialEq for LiteralMetadata
impl PartialEq for uniffi_meta::Metadata
impl PartialEq for Radix
impl PartialEq for UniffiTraitMetadata
impl PartialEq for ExternalKind
impl PartialEq for ObjectImpl
impl PartialEq for uniffi_meta::types::Type
impl PartialEq for Special
impl PartialEq for StringifierOrInheritOrStatic
impl PartialEq for StringifierOrStatic
impl PartialEq for FloatingPointType
impl PartialEq for IntegerType
impl PartialEq for CallbackResult
impl PartialEq for ForeignExecutorCallbackResult
impl PartialEq for RustCallStatusCode
impl PartialEq for RustFuturePoll
impl PartialEq for RustTaskCallbackCode
impl PartialEq for TargetLanguage
impl PartialEq for Level
impl PartialEq for LevelFilter
impl PartialEq for AsciiChar
impl PartialEq for uniffi::deps::static_assertions::_core::cmp::Ordering
impl PartialEq for Infallible
impl PartialEq for uniffi::deps::static_assertions::_core::fmt::Alignment
impl PartialEq for DebugAsHex
impl PartialEq for Sign
impl PartialEq for IpAddr
impl PartialEq for Ipv6MulticastScope
impl PartialEq for SocketAddr
impl PartialEq for FpCategory
impl PartialEq for IntErrorKind
impl PartialEq for GetManyMutError
impl PartialEq for SearchStep
impl PartialEq for uniffi::deps::static_assertions::_core::sync::atomic::Ordering
impl PartialEq for TryReserveErrorKind
impl PartialEq for BacktraceStatus
impl PartialEq for VarError
impl PartialEq for SeekFrom
impl PartialEq for std::io::error::ErrorKind
impl PartialEq for Shutdown
impl PartialEq for BacktraceStyle
impl PartialEq for std::sync::mpsc::RecvTimeoutError
impl PartialEq for std::sync::mpsc::TryRecvError
impl PartialEq for _Unwind_Action
impl PartialEq for _Unwind_Reason_Code
impl PartialEq for bool
impl PartialEq for char
impl PartialEq for f16
impl PartialEq for f32
impl PartialEq for f64
impl PartialEq for f128
impl PartialEq for i8
impl PartialEq for i16
impl PartialEq for i32
impl PartialEq for i64
impl PartialEq for i128
impl PartialEq for isize
impl PartialEq for !
impl PartialEq for str
impl PartialEq for u8
impl PartialEq for u16
impl PartialEq for u32
impl PartialEq for u64
impl PartialEq for u128
impl PartialEq for ()
impl PartialEq for usize
impl PartialEq for StripBytes
impl PartialEq for StripStr
impl PartialEq for WinconBytes
impl PartialEq for Ansi256Color
impl PartialEq for RgbColor
impl PartialEq for EffectIter
impl PartialEq for Effects
impl PartialEq for Reset
impl PartialEq for Style
impl PartialEq for Params
impl PartialEq for AsciiParser
impl PartialEq for Utf8Parser
impl PartialEq for FromPathBufError
impl PartialEq for FromPathError
impl PartialEq for Utf8Path
impl PartialEq for Utf8PathBuf
impl PartialEq for Dependency
impl PartialEq for Diagnostic
impl PartialEq for DiagnosticCode
impl PartialEq for DiagnosticSpan
impl PartialEq for DiagnosticSpanLine
impl PartialEq for DiagnosticSpanMacroExpansion
impl PartialEq for Artifact
impl PartialEq for ArtifactProfile
impl PartialEq for BuildFinished
impl PartialEq for BuildScript
impl PartialEq for CompilerMessage
impl PartialEq for Package
impl PartialEq for PackageId
impl PartialEq for Source
impl PartialEq for Target
impl PartialEq for Arg
impl PartialEq for ArgGroup
impl PartialEq for clap_builder::builder::os_str::OsStr
impl PartialEq for PossibleValue
impl PartialEq for ValueRange
impl PartialEq for Str
impl PartialEq for StyledStr
impl PartialEq for ArgMatches
impl PartialEq for Id
impl PartialEq for ArgCursor
impl PartialEq for RawArgs
impl PartialEq for MatchOptions
impl PartialEq for Pattern
impl PartialEq for MemberHeader
impl PartialEq for Ctx
impl PartialEq for goblin::elf::compression_header::compression_header32::CompressionHeader
impl PartialEq for goblin::elf::compression_header::compression_header64::CompressionHeader
impl PartialEq for goblin::elf::compression_header::CompressionHeader
impl PartialEq for goblin::elf::dynamic::dyn32::Dyn
impl PartialEq for goblin::elf::dynamic::dyn32::DynamicInfo
impl PartialEq for goblin::elf::dynamic::dyn64::Dyn
impl PartialEq for goblin::elf::dynamic::dyn64::DynamicInfo
impl PartialEq for goblin::elf::dynamic::Dyn
impl PartialEq for goblin::elf::dynamic::DynamicInfo
impl PartialEq for goblin::elf::header::header32::Header
impl PartialEq for goblin::elf::header::header64::Header
impl PartialEq for goblin::elf::header::Header
impl PartialEq for goblin::elf::program_header::program_header32::ProgramHeader
impl PartialEq for goblin::elf::program_header::program_header64::ProgramHeader
impl PartialEq for goblin::elf::program_header::ProgramHeader
impl PartialEq for goblin::elf::reloc::reloc32::Rel
impl PartialEq for goblin::elf::reloc::reloc32::Rela
impl PartialEq for goblin::elf::reloc::reloc64::Rel
impl PartialEq for goblin::elf::reloc::reloc64::Rela
impl PartialEq for Reloc
impl PartialEq for goblin::elf::section_header::section_header32::SectionHeader
impl PartialEq for goblin::elf::section_header::section_header64::SectionHeader
impl PartialEq for goblin::elf::section_header::SectionHeader
impl PartialEq for goblin::elf::sym::Sym
impl PartialEq for goblin::elf::sym::sym32::Sym
impl PartialEq for goblin::elf::sym::sym64::Sym
impl PartialEq for DataDirectories
impl PartialEq for DataDirectory
impl PartialEq for ImageDebugDirectory
impl PartialEq for Register
impl PartialEq for RuntimeFunction
impl PartialEq for UnwindCode
impl PartialEq for ExportDirectoryTable
impl PartialEq for CoffHeader
impl PartialEq for DosHeader
impl PartialEq for goblin::pe::header::Header
impl PartialEq for OptionalHeader
impl PartialEq for StandardFields32
impl PartialEq for StandardFields64
impl PartialEq for StandardFields
impl PartialEq for WindowsFields32
impl PartialEq for WindowsFields64
impl PartialEq for Relocation
impl PartialEq for SectionTable
impl PartialEq for AuxBeginAndEndFunction
impl PartialEq for AuxFunctionDefinition
impl PartialEq for AuxSectionDefinition
impl PartialEq for AuxWeakExternal
impl PartialEq for goblin::pe::symbol::Symbol
impl PartialEq for oneshot_uniffi::errors::RecvError
impl PartialEq for Sleb128
impl PartialEq for Uleb128
impl PartialEq for BuildMetadata
impl PartialEq for Comparator
impl PartialEq for Prerelease
impl PartialEq for Version
impl PartialEq for VersionReq
impl PartialEq for IgnoredAny
impl PartialEq for serde::de::value::Error
impl PartialEq for serde_json::map::Map<String, Value>
impl PartialEq for Number
impl PartialEq for Date
impl PartialEq for Datetime
impl PartialEq for Time
impl PartialEq for toml::de::Error
impl PartialEq for toml::map::Map<String, Value>
impl PartialEq for uniffi_bindgen::interface::enum_::Enum
impl PartialEq for Variant
impl PartialEq for ResultType
impl PartialEq for Field
impl PartialEq for uniffi_bindgen::interface::record::Record
impl PartialEq for EmptyBindingsConfig
impl PartialEq for CallbackInterfaceMetadata
impl PartialEq for ConstructorMetadata
impl PartialEq for CustomTypeMetadata
impl PartialEq for EnumMetadata
impl PartialEq for FieldMetadata
impl PartialEq for FnMetadata
impl PartialEq for FnParamMetadata
impl PartialEq for MethodMetadata
impl PartialEq for NamespaceMetadata
impl PartialEq for ObjectMetadata
impl PartialEq for RecordMetadata
impl PartialEq for TraitMethodMetadata
impl PartialEq for UdlFile
impl PartialEq for VariantMetadata
impl PartialEq for utf8parse::Parser
impl PartialEq for BooleanLit
impl PartialEq for EmptyArrayLit
impl PartialEq for EmptyDictionaryLit
impl PartialEq for Any
impl PartialEq for ArrayBuffer
impl PartialEq for ArrayBufferView
impl PartialEq for Assign
impl PartialEq for Async
impl PartialEq for Attribute
impl PartialEq for Boolean
impl PartialEq for BufferSource
impl PartialEq for Byte
impl PartialEq for ByteString
impl PartialEq for Callback
impl PartialEq for CloseBrace
impl PartialEq for CloseBracket
impl PartialEq for CloseParen
impl PartialEq for Colon
impl PartialEq for Comma
impl PartialEq for Const
impl PartialEq for Constructor
impl PartialEq for DOMString
impl PartialEq for DataView
impl PartialEq for Deleter
impl PartialEq for Dictionary
impl PartialEq for Dot
impl PartialEq for Double
impl PartialEq for Ellipsis
impl PartialEq for weedle::term::Enum
impl PartialEq for weedle::term::Error
impl PartialEq for False
impl PartialEq for Float32Array
impl PartialEq for Float64Array
impl PartialEq for Float
impl PartialEq for FrozenArray
impl PartialEq for Getter
impl PartialEq for GreaterThan
impl PartialEq for Implements
impl PartialEq for Includes
impl PartialEq for Infinity
impl PartialEq for Inherit
impl PartialEq for Int8Array
impl PartialEq for Int16Array
impl PartialEq for Int32Array
impl PartialEq for Interface
impl PartialEq for Iterable
impl PartialEq for LegacyCaller
impl PartialEq for LessThan
impl PartialEq for Long
impl PartialEq for Maplike
impl PartialEq for Minus
impl PartialEq for Mixin
impl PartialEq for NaN
impl PartialEq for Namespace
impl PartialEq for NegInfinity
impl PartialEq for Null
impl PartialEq for Object
impl PartialEq for Octet
impl PartialEq for OpenBrace
impl PartialEq for OpenBracket
impl PartialEq for OpenParen
impl PartialEq for Optional
impl PartialEq for Or
impl PartialEq for Partial
impl PartialEq for Promise
impl PartialEq for QMark
impl PartialEq for ReadOnly
impl PartialEq for weedle::term::Record
impl PartialEq for Required
impl PartialEq for SemiColon
impl PartialEq for Sequence
impl PartialEq for Setlike
impl PartialEq for Setter
impl PartialEq for Short
impl PartialEq for Static
impl PartialEq for Stringifier
impl PartialEq for weedle::term::Symbol
impl PartialEq for True
impl PartialEq for Typedef
impl PartialEq for USVString
impl PartialEq for Uint8Array
impl PartialEq for Uint8ClampedArray
impl PartialEq for Uint16Array
impl PartialEq for Uint32Array
impl PartialEq for Undefined
impl PartialEq for Unrestricted
impl PartialEq for Unsigned
impl PartialEq for DoubleType
impl PartialEq for FloatType
impl PartialEq for LongLongType
impl PartialEq for LongType
impl PartialEq for ShortType
impl PartialEq for Bytes
impl PartialEq for BytesMut
impl PartialEq for ParseLevelError
impl PartialEq for AllocError
impl PartialEq for Layout
impl PartialEq for LayoutError
impl PartialEq for TypeId
impl PartialEq for CpuidResult
impl PartialEq for CharTryFromError
impl PartialEq for DecodeUtf16Error
impl PartialEq for ParseCharError
impl PartialEq for TryFromCharError
impl PartialEq for CStr
impl PartialEq for FromBytesUntilNulError
impl PartialEq for FromBytesWithNulError
impl PartialEq for uniffi::deps::static_assertions::_core::fmt::Error
impl PartialEq for FormattingOptions
impl PartialEq for PhantomPinned
impl PartialEq for Assume
impl PartialEq for AddrParseError
impl PartialEq for Ipv4Addr
impl PartialEq for Ipv6Addr
impl PartialEq for SocketAddrV4
impl PartialEq for SocketAddrV6
impl PartialEq for ParseFloatError
impl PartialEq for ParseIntError
impl PartialEq for TryFromIntError
impl PartialEq for RangeFull
impl PartialEq for uniffi::deps::static_assertions::_core::ptr::Alignment
impl PartialEq for ParseBoolError
impl PartialEq for Utf8Error
impl PartialEq for RawWaker
impl PartialEq for RawWakerVTable
impl PartialEq for Duration
impl PartialEq for TryFromFloatSecsError
impl PartialEq for UnorderedKeyError
impl PartialEq for TryReserveError
impl PartialEq for CString
impl PartialEq for FromVecWithNulError
impl PartialEq for IntoStringError
impl PartialEq for NulError
impl PartialEq for FromUtf8Error
impl PartialEq for String
impl PartialEq for std::ffi::os_str::OsStr
impl PartialEq for OsString
impl PartialEq for FileType
impl PartialEq for Permissions
impl PartialEq for UCred
impl PartialEq for Path
impl PartialEq for PathBuf
impl PartialEq for StripPrefixError
impl PartialEq for ExitCode
impl PartialEq for ExitStatus
impl PartialEq for ExitStatusError
impl PartialEq for Output
impl PartialEq for std::sync::mpsc::RecvError
impl PartialEq for WaitTimeoutResult
impl PartialEq for AccessError
impl PartialEq for ThreadId
impl PartialEq for Instant
impl PartialEq for SystemTime
impl PartialEq<&str> for serde_json::value::Value
impl PartialEq<&str> for clap_builder::builder::os_str::OsStr
impl PartialEq<&str> for Str
impl PartialEq<&str> for Id
impl PartialEq<&str> for OsString
impl PartialEq<&OsStr> for clap_builder::builder::os_str::OsStr
impl PartialEq<&OsStr> for Str
impl PartialEq<Value> for &str
impl PartialEq<Value> for bool
impl PartialEq<Value> for f32
impl PartialEq<Value> for f64
impl PartialEq<Value> for i8
impl PartialEq<Value> for i16
impl PartialEq<Value> for i32
impl PartialEq<Value> for i64
impl PartialEq<Value> for isize
impl PartialEq<Value> for str
impl PartialEq<Value> for u8
impl PartialEq<Value> for u16
impl PartialEq<Value> for u32
impl PartialEq<Value> for u64
impl PartialEq<Value> for usize
impl PartialEq<Value> for String
impl PartialEq<Level> for LevelFilter
impl PartialEq<LevelFilter> for Level
impl PartialEq<IpAddr> for Ipv4Addr
impl PartialEq<IpAddr> for Ipv6Addr
impl PartialEq<bool> for serde_json::value::Value
impl PartialEq<f32> for serde_json::value::Value
impl PartialEq<f64> for serde_json::value::Value
impl PartialEq<i8> for serde_json::value::Value
impl PartialEq<i16> for serde_json::value::Value
impl PartialEq<i32> for serde_json::value::Value
impl PartialEq<i64> for serde_json::value::Value
impl PartialEq<isize> for serde_json::value::Value
impl PartialEq<str> for serde_json::value::Value
impl PartialEq<str> for clap_builder::builder::os_str::OsStr
impl PartialEq<str> for Str
impl PartialEq<str> for Id
impl PartialEq<str> for Bytes
impl PartialEq<str> for BytesMut
impl PartialEq<str> for std::ffi::os_str::OsStr
impl PartialEq<str> for OsString
impl PartialEq<u8> for serde_json::value::Value
impl PartialEq<u16> for serde_json::value::Value
impl PartialEq<u32> for serde_json::value::Value
impl PartialEq<u64> for serde_json::value::Value
impl PartialEq<usize> for serde_json::value::Value
impl PartialEq<Effects> for Style
§Examples
let effects = anstyle::Effects::BOLD;
assert_eq!(anstyle::Style::new().effects(effects), effects);
assert_ne!(anstyle::Effects::UNDERLINE | effects, effects);
assert_ne!(anstyle::RgbColor(0, 0, 0).on_default() | effects, effects);
impl PartialEq<OsStr> for &str
impl PartialEq<OsStr> for &std::ffi::os_str::OsStr
impl PartialEq<OsStr> for str
impl PartialEq<OsStr> for String
impl PartialEq<OsStr> for OsString
impl PartialEq<Str> for &str
impl PartialEq<Str> for &std::ffi::os_str::OsStr
impl PartialEq<Str> for str
impl PartialEq<Str> for Id
impl PartialEq<Str> for String
impl PartialEq<Str> for std::ffi::os_str::OsStr
impl PartialEq<Id> for &str
impl PartialEq<Id> for str
impl PartialEq<Id> for Str
impl PartialEq<Id> for String
impl PartialEq<Bytes> for &str
impl PartialEq<Bytes> for &[u8]
impl PartialEq<Bytes> for str
impl PartialEq<Bytes> for BytesMut
impl PartialEq<Bytes> for String
impl PartialEq<Bytes> for Vec<u8>
impl PartialEq<Bytes> for [u8]
impl PartialEq<BytesMut> for &str
impl PartialEq<BytesMut> for &[u8]
impl PartialEq<BytesMut> for str
impl PartialEq<BytesMut> for Bytes
impl PartialEq<BytesMut> for String
impl PartialEq<BytesMut> for Vec<u8>
impl PartialEq<BytesMut> for [u8]
impl PartialEq<Ipv4Addr> for IpAddr
impl PartialEq<Ipv6Addr> for IpAddr
impl PartialEq<String> for serde_json::value::Value
impl PartialEq<String> for clap_builder::builder::os_str::OsStr
impl PartialEq<String> for Str
impl PartialEq<String> for Id
impl PartialEq<String> for Bytes
impl PartialEq<String> for BytesMut
impl PartialEq<Vec<u8>> for Bytes
impl PartialEq<Vec<u8>> for BytesMut
impl PartialEq<OsStr> for str
impl PartialEq<OsStr> for Str
impl PartialEq<OsStr> for Path
impl PartialEq<OsStr> for PathBuf
impl PartialEq<OsString> for str
impl PartialEq<OsString> for clap_builder::builder::os_str::OsStr
impl PartialEq<OsString> for Path
impl PartialEq<OsString> for PathBuf
impl PartialEq<Path> for std::ffi::os_str::OsStr
impl PartialEq<Path> for OsString
impl PartialEq<Path> for PathBuf
impl PartialEq<PathBuf> for std::ffi::os_str::OsStr
impl PartialEq<PathBuf> for OsString
impl PartialEq<PathBuf> for Path
impl PartialEq<[u8]> for Bytes
impl PartialEq<[u8]> for BytesMut
impl<'a> PartialEq for Utf8Component<'a>
impl<'a> PartialEq for Utf8Prefix<'a>
impl<'a> PartialEq for UnwindHandler<'a>
impl<'a> PartialEq for Unexpected<'a>
impl<'a> PartialEq for Argument<'a>
impl<'a> PartialEq for ExtendedAttribute<'a>
impl<'a> PartialEq for IdentifierOrString<'a>
impl<'a> PartialEq for Definition<'a>
impl<'a> PartialEq for AsyncIterableInterfaceMember<'a>
impl<'a> PartialEq for InterfaceMember<'a>
impl<'a> PartialEq for IterableInterfaceMember<'a>
impl<'a> PartialEq for ConstValue<'a>
impl<'a> PartialEq for DefaultValue<'a>
impl<'a> PartialEq for FloatLit<'a>
impl<'a> PartialEq for IntegerLit<'a>
impl<'a> PartialEq for MixinMember<'a>
impl<'a> PartialEq for NamespaceMember<'a>
impl<'a> PartialEq for ConstType<'a>
impl<'a> PartialEq for NonAnyType<'a>
impl<'a> PartialEq for RecordKeyType<'a>
impl<'a> PartialEq for ReturnType<'a>
impl<'a> PartialEq for SingleType<'a>
impl<'a> PartialEq for weedle::types::Type<'a>
impl<'a> PartialEq for UnionMemberType<'a>
impl<'a> PartialEq for Utf8Pattern<'a>
impl<'a> PartialEq for Component<'a>
impl<'a> PartialEq for Prefix<'a>
impl<'a> PartialEq for Utf8Components<'a>
impl<'a> PartialEq for Utf8PrefixComponent<'a>
impl<'a> PartialEq for goblin::archive::Header<'a>
impl<'a> PartialEq for Member<'a>
impl<'a> PartialEq for CodeviewPDB70DebugInfo<'a>
impl<'a> PartialEq for DebugData<'a>
impl<'a> PartialEq for SingleArgument<'a>
impl<'a> PartialEq for VariadicArgument<'a>
impl<'a> PartialEq for ExtendedAttributeArgList<'a>
impl<'a> PartialEq for ExtendedAttributeIdent<'a>
impl<'a> PartialEq for ExtendedAttributeIdentList<'a>
impl<'a> PartialEq for ExtendedAttributeNamedArgList<'a>
impl<'a> PartialEq for ExtendedAttributeNoArgs<'a>
impl<'a> PartialEq for Default<'a>
impl<'a> PartialEq for Identifier<'a>
impl<'a> PartialEq for DictionaryMember<'a>
impl<'a> PartialEq for AttributeInterfaceMember<'a>
impl<'a> PartialEq for ConstMember<'a>
impl<'a> PartialEq for ConstructorInterfaceMember<'a>
impl<'a> PartialEq for DoubleTypedAsyncIterable<'a>
impl<'a> PartialEq for DoubleTypedIterable<'a>
impl<'a> PartialEq for Inheritance<'a>
impl<'a> PartialEq for MaplikeInterfaceMember<'a>
impl<'a> PartialEq for OperationInterfaceMember<'a>
impl<'a> PartialEq for SetlikeInterfaceMember<'a>
impl<'a> PartialEq for SingleTypedAsyncIterable<'a>
impl<'a> PartialEq for SingleTypedIterable<'a>
impl<'a> PartialEq for StringifierMember<'a>
impl<'a> PartialEq for DecLit<'a>
impl<'a> PartialEq for FloatValueLit<'a>
impl<'a> PartialEq for HexLit<'a>
impl<'a> PartialEq for OctLit<'a>
impl<'a> PartialEq for StringLit<'a>
impl<'a> PartialEq for AttributeMixinMember<'a>
impl<'a> PartialEq for OperationMixinMember<'a>
impl<'a> PartialEq for AttributeNamespaceMember<'a>
impl<'a> PartialEq for OperationNamespaceMember<'a>
impl<'a> PartialEq for CallbackDefinition<'a>
impl<'a> PartialEq for CallbackInterfaceDefinition<'a>
impl<'a> PartialEq for DictionaryDefinition<'a>
impl<'a> PartialEq for EnumDefinition<'a>
impl<'a> PartialEq for ImplementsDefinition<'a>
impl<'a> PartialEq for IncludesStatementDefinition<'a>
impl<'a> PartialEq for InterfaceDefinition<'a>
impl<'a> PartialEq for InterfaceMixinDefinition<'a>
impl<'a> PartialEq for NamespaceDefinition<'a>
impl<'a> PartialEq for PartialDictionaryDefinition<'a>
impl<'a> PartialEq for PartialInterfaceDefinition<'a>
impl<'a> PartialEq for PartialInterfaceMixinDefinition<'a>
impl<'a> PartialEq for PartialNamespaceDefinition<'a>
impl<'a> PartialEq for TypedefDefinition<'a>
impl<'a> PartialEq for AttributedNonAnyType<'a>
impl<'a> PartialEq for AttributedType<'a>
impl<'a> PartialEq for FrozenArrayType<'a>
impl<'a> PartialEq for PromiseType<'a>
impl<'a> PartialEq for RecordType<'a>
impl<'a> PartialEq for SequenceType<'a>
impl<'a> PartialEq for uniffi::deps::log::Metadata<'a>
impl<'a> PartialEq for MetadataBuilder<'a>
impl<'a> PartialEq for Location<'a>
impl<'a> PartialEq for Utf8Chunk<'a>
impl<'a> PartialEq for Components<'a>
impl<'a> PartialEq for PrefixComponent<'a>
impl<'a> PartialEq<&'a OsStr> for Path
impl<'a> PartialEq<&'a OsStr> for PathBuf
impl<'a> PartialEq<&'a Path> for std::ffi::os_str::OsStr
impl<'a> PartialEq<&'a Path> for OsString
impl<'a> PartialEq<&'a Path> for PathBuf
impl<'a> PartialEq<Cow<'a, OsStr>> for Path
impl<'a> PartialEq<Cow<'a, OsStr>> for PathBuf
impl<'a> PartialEq<Cow<'a, Path>> for std::ffi::os_str::OsStr
impl<'a> PartialEq<Cow<'a, Path>> for OsString
impl<'a> PartialEq<Cow<'a, Path>> for Path
impl<'a> PartialEq<Cow<'a, Path>> for PathBuf
impl<'a> PartialEq<bool> for &'a serde_json::value::Value
impl<'a> PartialEq<bool> for &'a mut serde_json::value::Value
impl<'a> PartialEq<f32> for &'a serde_json::value::Value
impl<'a> PartialEq<f32> for &'a mut serde_json::value::Value
impl<'a> PartialEq<f64> for &'a serde_json::value::Value
impl<'a> PartialEq<f64> for &'a mut serde_json::value::Value
impl<'a> PartialEq<i8> for &'a serde_json::value::Value
impl<'a> PartialEq<i8> for &'a mut serde_json::value::Value
impl<'a> PartialEq<i16> for &'a serde_json::value::Value
impl<'a> PartialEq<i16> for &'a mut serde_json::value::Value
impl<'a> PartialEq<i32> for &'a serde_json::value::Value
impl<'a> PartialEq<i32> for &'a mut serde_json::value::Value
impl<'a> PartialEq<i64> for &'a serde_json::value::Value
impl<'a> PartialEq<i64> for &'a mut serde_json::value::Value
impl<'a> PartialEq<isize> for &'a serde_json::value::Value
impl<'a> PartialEq<isize> for &'a mut serde_json::value::Value
impl<'a> PartialEq<u8> for &'a serde_json::value::Value
impl<'a> PartialEq<u8> for &'a mut serde_json::value::Value
impl<'a> PartialEq<u16> for &'a serde_json::value::Value
impl<'a> PartialEq<u16> for &'a mut serde_json::value::Value
impl<'a> PartialEq<u32> for &'a serde_json::value::Value
impl<'a> PartialEq<u32> for &'a mut serde_json::value::Value
impl<'a> PartialEq<u64> for &'a serde_json::value::Value
impl<'a> PartialEq<u64> for &'a mut serde_json::value::Value
impl<'a> PartialEq<usize> for &'a serde_json::value::Value
impl<'a> PartialEq<usize> for &'a mut serde_json::value::Value
impl<'a> PartialEq<OsStr> for &'a Path
impl<'a> PartialEq<OsStr> for Cow<'a, Path>
impl<'a> PartialEq<OsString> for &'a str
impl<'a> PartialEq<OsString> for &'a Path
impl<'a> PartialEq<OsString> for Cow<'a, Path>
impl<'a> PartialEq<Path> for &'a std::ffi::os_str::OsStr
impl<'a> PartialEq<Path> for Cow<'a, OsStr>
impl<'a> PartialEq<Path> for Cow<'a, Path>
impl<'a> PartialEq<PathBuf> for &'a std::ffi::os_str::OsStr
impl<'a> PartialEq<PathBuf> for &'a Path
impl<'a> PartialEq<PathBuf> for Cow<'a, OsStr>
impl<'a> PartialEq<PathBuf> for Cow<'a, Path>
impl<'a, 'b> PartialEq<&'a str> for Utf8Path
impl<'a, 'b> PartialEq<&'a str> for Utf8PathBuf
impl<'a, 'b> PartialEq<&'a str> for String
impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, str>
impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, OsStr>
impl<'a, 'b> PartialEq<&'a Utf8Path> for Cow<'b, Path>
impl<'a, 'b> PartialEq<&'a Utf8Path> for str
impl<'a, 'b> PartialEq<&'a Utf8Path> for Utf8PathBuf
impl<'a, 'b> PartialEq<&'a Utf8Path> for String
impl<'a, 'b> PartialEq<&'a Utf8Path> for std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<&'a Utf8Path> for OsString
impl<'a, 'b> PartialEq<&'a Utf8Path> for Path
impl<'a, 'b> PartialEq<&'a Utf8Path> for PathBuf
impl<'a, 'b> PartialEq<&'a OsStr> for Utf8Path
impl<'a, 'b> PartialEq<&'a OsStr> for Utf8PathBuf
impl<'a, 'b> PartialEq<&'a OsStr> for OsString
impl<'a, 'b> PartialEq<&'a Path> for Cow<'b, OsStr>
impl<'a, 'b> PartialEq<&'a Path> for Utf8Path
impl<'a, 'b> PartialEq<&'a Path> for Utf8PathBuf
impl<'a, 'b> PartialEq<&'b str> for Cow<'a, str>
impl<'a, 'b> PartialEq<&'b Utf8Path> for Cow<'a, Utf8Path>
impl<'a, 'b> PartialEq<&'b OsStr> for Cow<'a, OsStr>
impl<'a, 'b> PartialEq<&'b OsStr> for Cow<'a, Path>
impl<'a, 'b> PartialEq<&'b Path> for Cow<'a, Path>
impl<'a, 'b> PartialEq<Cow<'a, str>> for &'b str
impl<'a, 'b> PartialEq<Cow<'a, str>> for str
impl<'a, 'b> PartialEq<Cow<'a, str>> for Utf8Path
impl<'a, 'b> PartialEq<Cow<'a, str>> for Utf8PathBuf
impl<'a, 'b> PartialEq<Cow<'a, str>> for String
impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for &'b Utf8Path
impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for Utf8Path
impl<'a, 'b> PartialEq<Cow<'a, Utf8Path>> for Utf8PathBuf
impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for &'b std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for Utf8Path
impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for Utf8PathBuf
impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for OsString
impl<'a, 'b> PartialEq<Cow<'a, Path>> for &'b std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Cow<'a, Path>> for &'b Path
impl<'a, 'b> PartialEq<Cow<'a, Path>> for Utf8Path
impl<'a, 'b> PartialEq<Cow<'a, Path>> for Utf8PathBuf
impl<'a, 'b> PartialEq<Cow<'b, str>> for &'a Utf8Path
impl<'a, 'b> PartialEq<Cow<'b, OsStr>> for &'a Utf8Path
impl<'a, 'b> PartialEq<Cow<'b, OsStr>> for &'a Path
impl<'a, 'b> PartialEq<Cow<'b, Path>> for &'a Utf8Path
impl<'a, 'b> PartialEq<str> for &'a Utf8Path
impl<'a, 'b> PartialEq<str> for Cow<'a, str>
impl<'a, 'b> PartialEq<str> for Utf8Path
impl<'a, 'b> PartialEq<str> for Utf8PathBuf
impl<'a, 'b> PartialEq<str> for String
impl<'a, 'b> PartialEq<Utf8Path> for &'a str
impl<'a, 'b> PartialEq<Utf8Path> for &'a std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Utf8Path> for &'a Path
impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, str>
impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, Utf8Path>
impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, OsStr>
impl<'a, 'b> PartialEq<Utf8Path> for Cow<'a, Path>
impl<'a, 'b> PartialEq<Utf8Path> for str
impl<'a, 'b> PartialEq<Utf8Path> for Utf8PathBuf
impl<'a, 'b> PartialEq<Utf8Path> for String
impl<'a, 'b> PartialEq<Utf8Path> for std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Utf8Path> for OsString
impl<'a, 'b> PartialEq<Utf8Path> for Path
impl<'a, 'b> PartialEq<Utf8Path> for PathBuf
impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a str
impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a Utf8Path
impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Utf8PathBuf> for &'a Path
impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, str>
impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, Utf8Path>
impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, OsStr>
impl<'a, 'b> PartialEq<Utf8PathBuf> for Cow<'a, Path>
impl<'a, 'b> PartialEq<Utf8PathBuf> for str
impl<'a, 'b> PartialEq<Utf8PathBuf> for Utf8Path
impl<'a, 'b> PartialEq<Utf8PathBuf> for String
impl<'a, 'b> PartialEq<Utf8PathBuf> for std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Utf8PathBuf> for OsString
impl<'a, 'b> PartialEq<Utf8PathBuf> for Path
impl<'a, 'b> PartialEq<Utf8PathBuf> for PathBuf
impl<'a, 'b> PartialEq<String> for &'a str
impl<'a, 'b> PartialEq<String> for &'a Utf8Path
impl<'a, 'b> PartialEq<String> for Cow<'a, str>
impl<'a, 'b> PartialEq<String> for str
impl<'a, 'b> PartialEq<String> for Utf8Path
impl<'a, 'b> PartialEq<String> for Utf8PathBuf
impl<'a, 'b> PartialEq<OsStr> for &'a Utf8Path
impl<'a, 'b> PartialEq<OsStr> for Cow<'a, OsStr>
impl<'a, 'b> PartialEq<OsStr> for Utf8Path
impl<'a, 'b> PartialEq<OsStr> for Utf8PathBuf
impl<'a, 'b> PartialEq<OsStr> for OsString
impl<'a, 'b> PartialEq<OsString> for &'a Utf8Path
impl<'a, 'b> PartialEq<OsString> for &'a std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<OsString> for Cow<'a, OsStr>
impl<'a, 'b> PartialEq<OsString> for Utf8Path
impl<'a, 'b> PartialEq<OsString> for Utf8PathBuf
impl<'a, 'b> PartialEq<OsString> for std::ffi::os_str::OsStr
impl<'a, 'b> PartialEq<Path> for &'a Utf8Path
impl<'a, 'b> PartialEq<Path> for Utf8Path
impl<'a, 'b> PartialEq<Path> for Utf8PathBuf
impl<'a, 'b> PartialEq<PathBuf> for &'a Utf8Path
impl<'a, 'b> PartialEq<PathBuf> for Utf8Path
impl<'a, 'b> PartialEq<PathBuf> for Utf8PathBuf
impl<'a, 'b, B, C> PartialEq<Cow<'b, C>> for Cow<'a, B>
impl<'a, T> PartialEq<&'a T> for Bytes
impl<'a, T> PartialEq<&'a T> for BytesMut
impl<'s> PartialEq for StripBytesIter<'s>
impl<'s> PartialEq for StripStrIter<'s>
impl<'s> PartialEq for StrippedBytes<'s>
impl<'s> PartialEq for StrippedStr<'s>
impl<'s> PartialEq for WinconBytesIter<'s>
impl<'s> PartialEq for ParsedArg<'s>
impl<A, B> PartialEq<&B> for &A
impl<A, B> PartialEq<&B> for &mut A
impl<A, B> PartialEq<&mut B> for &A
impl<A, B> PartialEq<&mut B> for &mut A
impl<B, C> PartialEq for ControlFlow<B, C>
impl<C> PartialEq for anstyle_parse::Parser<C>where
C: PartialEq,
impl<Dyn> PartialEq for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E> PartialEq for Err<E>where
E: PartialEq,
impl<F> PartialEq for Fwhere
F: FnPtr,
impl<H> PartialEq for BuildHasherDefault<H>
impl<I> PartialEq for nom::error::Error<I>where
I: PartialEq,
impl<I> PartialEq for VerboseError<I>where
I: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::ops::Range<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::ops::RangeFrom<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::ops::RangeInclusive<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for RangeTo<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for RangeToInclusive<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::range::Range<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::range::RangeFrom<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for uniffi::deps::static_assertions::_core::range::RangeInclusive<Idx>where
Idx: PartialEq,
impl<K, V, A> PartialEq for BTreeMap<K, V, A>
impl<K, V, S> PartialEq for HashMap<K, V, S>
impl<Ptr, Q> PartialEq<Pin<Q>> for Pin<Ptr>
impl<T> PartialEq for Resettable<T>where
T: PartialEq,
impl<T> PartialEq for Bound<T>where
T: PartialEq,
impl<T> PartialEq for Option<T>where
T: PartialEq,
impl<T> PartialEq for Poll<T>where
T: PartialEq,
impl<T> PartialEq for SendTimeoutError<T>where
T: PartialEq,
impl<T> PartialEq for TrySendError<T>where
T: PartialEq,
impl<T> PartialEq for *const Twhere
T: ?Sized,
impl<T> PartialEq for *mut Twhere
T: ?Sized,
impl<T> PartialEq for (T₁, T₂, …, Tₙ)
This trait is implemented for tuples up to twelve items long.