Trait std::cmp::Eq
[−]
[src]
pub trait Eq: PartialEq<Self> { }Trait for equality comparisons which are equivalence relations.
This means, that in addition to a == b and a != b being strict inverses, the equality must
be (for all a, b and c):
- reflexive:
a == a; - symmetric:
a == bimpliesb == a; and - transitive:
a == bandb == cimpliesa == c.
This property cannot be checked by the compiler, and therefore Eq implies
PartialEq, and has no extra methods.
This trait can be used with #[derive].
Implementors
impl<A, B, C, D, E, F, G, H, I, J, K, L> Eq for (A, B, C, D, E, F, G, H, I, J, K, L) where C: Eq, G: Eq, I: Eq, H: Eq, B: Eq, D: Eq, L: Eq, J: Eq, F: Eq, K: Eq, E: Eq, A: Eqimpl<A, B, C, D, E, F, G, H, I, J, K> Eq for (A, B, C, D, E, F, G, H, I, J, K) where B: Eq, F: Eq, H: Eq, J: Eq, I: Eq, D: Eq, K: Eq, C: Eq, A: Eq, E: Eq, G: Eqimpl<A, B, C, D, E, F, G, H, I, J> Eq for (A, B, C, D, E, F, G, H, I, J) where J: Eq, F: Eq, I: Eq, E: Eq, G: Eq, C: Eq, H: Eq, B: Eq, D: Eq, A: Eqimpl<A, B, C, D, E, F, G, H, I> Eq for (A, B, C, D, E, F, G, H, I) where I: Eq, A: Eq, H: Eq, C: Eq, D: Eq, F: Eq, B: Eq, G: Eq, E: Eqimpl<A, B, C, D, E, F, G, H> Eq for (A, B, C, D, E, F, G, H) where H: Eq, D: Eq, F: Eq, G: Eq, A: Eq, B: Eq, C: Eq, E: Eqimpl<A, B, C, D, E, F, G> Eq for (A, B, C, D, E, F, G) where B: Eq, A: Eq, D: Eq, C: Eq, E: Eq, F: Eq, G: Eqimpl<A, B, C, D, E, F> Eq for (A, B, C, D, E, F) where B: Eq, A: Eq, E: Eq, C: Eq, F: Eq, D: Eqimpl<A, B, C, D, E> Eq for (A, B, C, D, E) where D: Eq, B: Eq, E: Eq, A: Eq, C: Eqimpl<A, B, C, D> Eq for (A, B, C, D) where D: Eq, B: Eq, C: Eq, A: Eqimpl<A, B, C> Eq for (A, B, C) where A: Eq, B: Eq, C: Eqimpl<A, B> Eq for (A, B) where A: Eq, B: Eqimpl<A> Eq for (A,) where A: Eqimpl Eq for strimpl<T> Eq for [T] where T: Eqimpl<T> Eq for [T; 32] where T: Eqimpl<T> Eq for [T; 31] where T: Eqimpl<T> Eq for [T; 30] where T: Eqimpl<T> Eq for [T; 29] where T: Eqimpl<T> Eq for [T; 28] where T: Eqimpl<T> Eq for [T; 27] where T: Eqimpl<T> Eq for [T; 26] where T: Eqimpl<T> Eq for [T; 25] where T: Eqimpl<T> Eq for [T; 24] where T: Eqimpl<T> Eq for [T; 23] where T: Eqimpl<T> Eq for [T; 22] where T: Eqimpl<T> Eq for [T; 21] where T: Eqimpl<T> Eq for [T; 20] where T: Eqimpl<T> Eq for [T; 19] where T: Eqimpl<T> Eq for [T; 18] where T: Eqimpl<T> Eq for [T; 17] where T: Eqimpl<T> Eq for [T; 16] where T: Eqimpl<T> Eq for [T; 15] where T: Eqimpl<T> Eq for [T; 14] where T: Eqimpl<T> Eq for [T; 13] where T: Eqimpl<T> Eq for [T; 12] where T: Eqimpl<T> Eq for [T; 11] where T: Eqimpl<T> Eq for [T; 10] where T: Eqimpl<T> Eq for [T; 9] where T: Eqimpl<T> Eq for [T; 8] where T: Eqimpl<T> Eq for [T; 7] where T: Eqimpl<T> Eq for [T; 6] where T: Eqimpl<T> Eq for [T; 5] where T: Eqimpl<T> Eq for [T; 4] where T: Eqimpl<T> Eq for [T; 3] where T: Eqimpl<T> Eq for [T; 2] where T: Eqimpl<T> Eq for [T; 1] where T: Eqimpl<T> Eq for [T; 0] where T: Eqimpl Eq for TypeIdimpl Eq for i64impl Eq for i32impl Eq for i16impl Eq for i8impl Eq for isizeimpl Eq for u64impl Eq for u32impl Eq for u16impl Eq for u8impl Eq for usizeimpl Eq for charimpl Eq for boolimpl Eq for ()impl<T> Eq for *mut T where T: ?Sizedimpl<T> Eq for *const T where T: ?Sizedimpl<T> Eq for Cell<T> where T: Copy + Eqimpl<T> Eq for RefCell<T> where T: Eq + ?Sizedimpl Eq for BorrowStateimpl Eq for Orderingimpl<T> Eq for PhantomData<T> where T: ?Sizedimpl Eq for RangeFullimpl<Idx> Eq for Range<Idx> where Idx: Eqimpl<Idx> Eq for RangeFrom<Idx> where Idx: Eqimpl<Idx> Eq for RangeTo<Idx> where Idx: Eqimpl<Idx> Eq for RangeInclusive<Idx> where Idx: Eqimpl<Idx> Eq for RangeToInclusive<Idx> where Idx: Eqimpl<T, E> Eq for Result<T, E> where T: Eq, E: Eqimpl<T> Eq for Option<T> where T: Eqimpl<T> Eq for Box<T> where T: Eq + ?Sizedimpl<T> Eq for Rc<T> where T: Eq + ?Sizedimpl<'a, B> Eq for Cow<'a, B> where B: Eq + ToOwned + ?Sizedimpl Eq for SearchStepimpl Eq for Utf8Errorimpl Eq for Stringimpl Eq for ParseErrorimpl<T> Eq for Vec<T> where T: Eqimpl Eq for DecodeUtf16Errorimpl<T> Eq for Wrapping<T> where T: Eqimpl Eq for LocalKeyStateimpl<T> Eq for Bound<T> where T: Eqimpl<K, V> Eq for BTreeMap<K, V> where V: Eq, K: Eqimpl<T> Eq for BTreeSet<T> where T: Eqimpl<A> Eq for LinkedList<A> where A: Eqimpl<A> Eq for VecDeque<A> where A: Eqimpl<K, V, S> Eq for HashMap<K, V, S> where K: Eq + Hash, V: Eq, S: BuildHasherimpl<T, S> Eq for HashSet<T, S> where T: Eq + Hash, S: BuildHasherimpl Eq for VarErrorimpl Eq for CStringimpl Eq for CStrimpl Eq for OsStringimpl Eq for OsStrimpl Eq for Permissionsimpl Eq for FileTypeimpl Eq for ErrorKindimpl Eq for SeekFromimpl Eq for IpAddrimpl Eq for Ipv6MulticastScopeimpl Eq for Ipv4Addrimpl Eq for Ipv6Addrimpl Eq for SocketAddrimpl Eq for SocketAddrV4impl Eq for SocketAddrV6impl<'a> Eq for Prefix<'a>impl<'a> Eq for PrefixComponent<'a>impl<'a> Eq for Component<'a>impl<'a> Eq for Components<'a>impl Eq for PathBufimpl Eq for StripPrefixErrorimpl Eq for Pathimpl Eq for Outputimpl Eq for ExitStatusimpl<T> Eq for Arc<T> where T: Eq + ?Sizedimpl<T: Eq> Eq for SendError<T>impl Eq for RecvErrorimpl Eq for TryRecvErrorimpl<T: Eq> Eq for TrySendError<T>impl Eq for WaitTimeoutResultimpl Eq for Durationimpl Eq for Instantimpl Eq for SystemTime