Trait cretonne::prelude::codegen::entity::__core::prelude::v1::Eq1.0.0[][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 == b implies b == a; and
  • transitive: a == b and b == c implies a == c.

This property cannot be checked by the compiler, and therefore Eq implies PartialEq, and has no extra methods.

Derivable

This trait can be used with #[derive]. When derived, because Eq has no extra methods, it is only informing the compiler that this is an equivalence relation rather than a partial equivalence relation. Note that the derive strategy requires all fields are Eq, which isn't always desired.

How can I implement Eq?

If you cannot use the derive strategy, specify that your type implements Eq, which has no methods:

enum BookFormat { Paperback, Hardback, Ebook }
struct Book {
    isbn: i32,
    format: BookFormat,
}
impl PartialEq for Book {
    fn eq(&self, other: &Book) -> bool {
        self.isbn == other.isbn
    }
}
impl Eq for Book {}

Implementations on Foreign Types

impl<'a> Eq for Prefix<'a>
[src]

impl Eq for StripPrefixError
[src]

impl Eq for CStr
[src]

impl<'a> Eq for PrefixComponent<'a>
[src]

impl Eq for Ipv4Addr
[src]

impl<T, S> Eq for HashSet<T, S> where
    S: BuildHasher,
    T: Eq + Hash
[src]

impl<'a> Eq for Components<'a>
[src]

impl Eq for WaitTimeoutResult
[src]

impl Eq for SeekFrom
[src]

impl Eq for ErrorKind
[src]

impl Eq for SocketAddr
[src]

impl Eq for RecvError
[src]

impl Eq for IpAddr
[src]

impl Eq for OsString
[src]

impl Eq for ExitStatus
[src]

impl<T> Eq for TrySendError<T> where
    T: Eq
[src]

impl Eq for SocketAddrV6
[src]

impl Eq for Path
[src]

impl Eq for Ipv6Addr
[src]

impl<T> Eq for SendError<T> where
    T: Eq
[src]

impl Eq for VarError
[src]

impl Eq for OsStr
[src]

impl Eq for RecvTimeoutError
[src]

impl Eq for AddrParseError
[src]

impl Eq for Permissions
[src]

impl Eq for PathBuf
[src]

impl Eq for ThreadId
[src]

impl Eq for FileType
[src]

impl Eq for FromBytesWithNulError
[src]

impl<K, V, S> Eq for HashMap<K, V, S> where
    K: Eq + Hash,
    S: BuildHasher,
    V: Eq
[src]

impl Eq for CString
[src]

impl Eq for Ipv6MulticastScope
[src]

impl Eq for Instant
[src]

impl Eq for Shutdown
[src]

impl Eq for NulError
[src]

impl Eq for TryRecvError
[src]

impl Eq for SystemTime
[src]

impl<'a> Eq for Component<'a>
[src]

impl Eq for IntoStringError
[src]

impl Eq for Output
[src]

impl Eq for SocketAddrV4
[src]

impl<A, B, C, D, E, F> Eq for (A, B, C, D, E, F) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq + ?Sized
[src]

impl<T> Eq for [T; 10] where
    T: Eq
[src]

impl<A, B> Eq for (A, B) where
    A: Eq,
    B: Eq + ?Sized
[src]

impl<Ret, A, B, C, D, E> Eq for extern "C" fn(A, B, C, D, E) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
[src]

impl<T> Eq for [T; 29] where
    T: Eq
[src]

impl Eq for ()
[src]

impl Eq for i64
[src]

impl<Ret, A, B, C> Eq for unsafe fn(A, B, C) -> Ret
[src]

impl Eq for u32
[src]

impl<T> Eq for [T; 7] where
    T: Eq
[src]

impl<T> Eq for [T; 3] where
    T: Eq
[src]

impl<Ret, A, B> Eq for unsafe extern "C" fn(A, B) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for unsafe fn(A, B, C, D, E, F, G) -> Ret
[src]

impl Eq for i8
[src]

impl<Ret, A, B, C, D, E> Eq for fn(A, B, C, D, E) -> Ret
[src]

impl<A, B, C, D, E, F, G, H, I> Eq for (A, B, C, D, E, F, G, H, I) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq,
    H: Eq,
    I: Eq + ?Sized
[src]

impl<Ret, A, B, C, D, E, F> Eq for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
[src]

impl<A, B, C, D, E, F, G> Eq for (A, B, C, D, E, F, G) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq + ?Sized
[src]

impl<T> Eq for [T; 1] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for unsafe fn(A, B, C, D, E, F, G, H) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
[src]

impl<T> Eq for [T; 19] where
    T: Eq
[src]

impl<T> Eq for [T; 31] where
    T: Eq
[src]

impl<A, B, C, D> Eq for (A, B, C, D) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq + ?Sized
[src]

impl<Ret, A, B> Eq for unsafe fn(A, B) -> Ret
[src]

impl<Ret, A, B, C, D, E, F> Eq for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret
[src]

impl<T> Eq for [T; 17] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E> Eq for unsafe extern "C" fn(A, B, C, D, E) -> Ret
[src]

impl<T> Eq for [T] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for fn(A, B, C, D, E, F, G, H) -> Ret
[src]

impl<'a, A> Eq for &'a A where
    A: Eq + ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
[src]

impl<T> Eq for [T; 20] where
    T: Eq
[src]

impl<T> Eq for [T; 4] where
    T: Eq
[src]

impl<Ret, A> Eq for fn(A) -> Ret
[src]

impl<Ret, A, B, C, D, E, F> Eq for fn(A, B, C, D, E, F) -> Ret
[src]

impl<Ret, A, B, C, D, E, F> Eq for unsafe fn(A, B, C, D, E, F) -> Ret
[src]

impl<Ret, A, B, C, D, E, F> Eq for extern "C" fn(A, B, C, D, E, F, ...) -> Ret
[src]

impl Eq for bool
[src]

impl<Ret, A, B, C, D, E> Eq for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
[src]

impl<T> Eq for [T; 23] where
    T: Eq
[src]

impl<Ret, A, B, C, D> Eq for unsafe fn(A, B, C, D) -> Ret
[src]

impl<Ret, A, B, C, D> Eq for unsafe extern "C" fn(A, B, C, D) -> Ret
[src]

impl<T> Eq for [T; 0] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
[src]

impl<Ret> Eq for fn() -> Ret
[src]

impl<T> Eq for [T; 26] where
    T: Eq
[src]

impl Eq for i128
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
[src]

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
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq,
    H: Eq,
    I: Eq,
    J: Eq,
    K: Eq,
    L: Eq + ?Sized
[src]

impl<T> Eq for [T; 25] where
    T: Eq
[src]

impl Eq for u16
[src]

impl<Ret> Eq for unsafe fn() -> Ret
[src]

impl<Ret, A, B> Eq for fn(A, B) -> Ret
[src]

impl Eq for u64
[src]

impl<A, B, C, D, E, F, G, H, I, J> Eq for (A, B, C, D, E, F, G, H, I, J) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq,
    H: Eq,
    I: Eq,
    J: Eq + ?Sized
[src]

impl<T> Eq for [T; 16] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
[src]

impl<T> Eq for [T; 22] where
    T: Eq
[src]

impl<Ret, A, B, C> Eq for extern "C" fn(A, B, C) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
[src]

impl<T> Eq for [T; 15] where
    T: Eq
[src]

impl<T> Eq for [T; 12] where
    T: Eq
[src]

impl Eq for !
[src]

impl<T> Eq for [T; 21] where
    T: Eq
[src]

impl<T> Eq for *const T where
    T: ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
[src]

impl<A> Eq for (A,) where
    A: Eq + ?Sized
[src]

impl<T> Eq for [T; 18] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
[src]

impl<Ret, A, B, C, D> Eq for unsafe extern "C" fn(A, B, C, D, ...) -> Ret
[src]

impl<Ret, A, B> Eq for extern "C" fn(A, B) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for extern "C" fn(A, B, C, D, E, F, G) -> Ret
[src]

impl<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
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq,
    H: Eq,
    I: Eq,
    J: Eq,
    K: Eq + ?Sized
[src]

impl<Ret, A> Eq for extern "C" fn(A) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
[src]

impl<Ret, A, B, C, D> Eq for extern "C" fn(A, B, C, D, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
[src]

impl<Ret, A, B, C> Eq for unsafe extern "C" fn(A, B, C) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
[src]

impl<T> Eq for *mut T where
    T: ?Sized
[src]

impl Eq for i32
[src]

impl Eq for ParseFloatError
[src]

impl<Ret, A> Eq for extern "C" fn(A, ...) -> Ret
[src]

impl<'a, A> Eq for &'a mut A where
    A: Eq + ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
[src]

impl<T> Eq for [T; 30] where
    T: Eq
[src]

impl Eq for str
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
[src]

impl<A, B, C> Eq for (A, B, C) where
    A: Eq,
    B: Eq,
    C: Eq + ?Sized
[src]

impl<Ret, A, B> Eq for unsafe extern "C" fn(A, B, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F> Eq for extern "C" fn(A, B, C, D, E, F) -> Ret
[src]

impl<Ret, A, B, C, D, E> Eq for extern "C" fn(A, B, C, D, E, ...) -> Ret
[src]

impl<Ret, A> Eq for unsafe extern "C" fn(A) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
[src]

impl<T> Eq for [T; 5] where
    T: Eq
[src]

impl<Ret> Eq for unsafe extern "C" fn() -> Ret
[src]

impl<Ret, A, B, C, D> Eq for fn(A, B, C, D) -> Ret
[src]

impl<T> Eq for [T; 28] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
[src]

impl<Ret, A> Eq for unsafe extern "C" fn(A, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
[src]

impl Eq for u8
[src]

impl<A, B, C, D, E> Eq for (A, B, C, D, E) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq + ?Sized
[src]

impl Eq for isize
[src]

impl<T> Eq for [T; 2] where
    T: Eq
[src]

impl<T> Eq for [T; 32] where
    T: Eq
[src]

impl<Ret, A> Eq for unsafe fn(A) -> Ret
[src]

impl<T> Eq for [T; 27] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
[src]

impl<Ret> Eq for extern "C" fn() -> Ret
[src]

impl Eq for usize
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
[src]

impl<T> Eq for [T; 14] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for fn(A, B, C, D, E, F, G, H, I) -> Ret
[src]

impl Eq for i16
[src]

impl<Ret, A, B, C, D, E, F, G> Eq for fn(A, B, C, D, E, F, G) -> Ret
[src]

impl<T> Eq for [T; 24] where
    T: Eq
[src]

impl<T> Eq for [T; 13] where
    T: Eq
[src]

impl<Ret, A, B, C, D> Eq for extern "C" fn(A, B, C, D) -> Ret
[src]

impl Eq for char
[src]

impl<Ret, A, B, C> Eq for extern "C" fn(A, B, C, ...) -> Ret
[src]

impl<Ret, A, B> Eq for extern "C" fn(A, B, ...) -> Ret
[src]

impl Eq for u128
[src]

impl<T> Eq for [T; 6] where
    T: Eq
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Eq for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
[src]

impl<Ret, A, B, C, D, E> Eq for unsafe fn(A, B, C, D, E) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
[src]

impl<T> Eq for [T; 9] where
    T: Eq
[src]

impl<Ret, A, B, C> Eq for unsafe extern "C" fn(A, B, C, ...) -> Ret
[src]

impl<Ret, A, B, C, D, E, F, G, H> Eq for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
[src]

impl<A, B, C, D, E, F, G, H> Eq for (A, B, C, D, E, F, G, H) where
    A: Eq,
    B: Eq,
    C: Eq,
    D: Eq,
    E: Eq,
    F: Eq,
    G: Eq,
    H: Eq + ?Sized
[src]

impl<Ret, A, B, C> Eq for fn(A, B, C) -> Ret
[src]

impl<T> Eq for [T; 8] where
    T: Eq
[src]

impl<T> Eq for [T; 11] where
    T: Eq
[src]

impl<T> Eq for BTreeSet<T> where
    T: Eq
[src]

impl<'a, B> Eq for Cow<'a, B> where
    B: Eq + ToOwned + ?Sized
[src]

impl<A> Eq for VecDeque<A> where
    A: Eq
[src]

impl<T> Eq for Box<T> where
    T: Eq + ?Sized
[src]

impl Eq for String
[src]

impl<T> Eq for LinkedList<T> where
    T: Eq
[src]

impl<T> Eq for Vec<T> where
    T: Eq
[src]

impl<T> Eq for Arc<T> where
    T: Eq + ?Sized
[src]

impl<K, V> Eq for BTreeMap<K, V> where
    K: Eq,
    V: Eq
[src]

impl Eq for ParseError
[src]

impl<T> Eq for Rc<T> where
    T: Eq + ?Sized
[src]

impl<E> Eq for Compat<E> where
    E: Eq

impl Eq for Vendor

impl Eq for OperatingSystem

impl Eq for Environment

impl Eq for Triple

impl Eq for PointerWidth

impl Eq for Endianness

impl Eq for Architecture

impl Eq for ParseError

impl Eq for BinaryFormat

Implementors