Skip to main content

ExecSpecEq

Trait ExecSpecEq 

Source
pub trait ExecSpecEq<'a>: DeepView + Sized {
    type Other: DeepView<V = Self::V>;

    // Required method
    exec fn exec_eq(this: Self, other: Self::Other) -> res : bool;
}
Expand description

Spec for the executable version of equality.

Required Associated Types§

Source

type Other: DeepView<V = Self::V>

Required Methods§

Source

exec fn exec_eq(this: Self, other: Self::Other) -> res : bool

ensures
res == (this.deep_view() =~~= other.deep_view()),

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, K: DeepView + DeepViewClone + Hash + Eq, V: DeepView + DeepViewClone> ExecSpecEq<'a> for &'a HashMap<K, V>
where &'a K: ExecSpecEq<'a, Other = &'a K>, &'a V: ExecSpecEq<'a, Other = &'a V>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a HashMap<K, V>

Source§

impl<'a, K: DeepView + DeepViewClone + Hash + Eq> ExecSpecEq<'a> for &'a HashSet<K>
where &'a K: ExecSpecEq<'a, Other = &'a K>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a HashSet<K>

Source§

impl<'a, T0: DeepView, T1: DeepView, T2: DeepView, T3: DeepView> ExecSpecEq<'a> for &'a (T0, T1, T2, T3)
where &'a T0: ExecSpecEq<'a, Other = &'a T0>, &'a T1: ExecSpecEq<'a, Other = &'a T1>, &'a T2: ExecSpecEq<'a, Other = &'a T2>, &'a T3: ExecSpecEq<'a, Other = &'a T3>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a (T0, T1, T2, T3)

Source§

impl<'a, T0: DeepView, T1: DeepView, T2: DeepView> ExecSpecEq<'a> for &'a (T0, T1, T2)
where &'a T0: ExecSpecEq<'a, Other = &'a T0>, &'a T1: ExecSpecEq<'a, Other = &'a T1>, &'a T2: ExecSpecEq<'a, Other = &'a T2>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a (T0, T1, T2)

Source§

impl<'a, T0: DeepView, T1: DeepView> ExecSpecEq<'a> for &'a (T0, T1)
where &'a T0: ExecSpecEq<'a, Other = &'a T0>, &'a T1: ExecSpecEq<'a, Other = &'a T1>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a (T0, T1)

Source§

impl<'a, T0: DeepView> ExecSpecEq<'a> for &'a (T0,)
where &'a T0: ExecSpecEq<'a, Other = &'a T0>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a (T0,)

Source§

impl<'a, T: DeepView> ExecSpecEq<'a> for &'a Option<T>
where &'a T: ExecSpecEq<'a, Other = &'a T>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a Option<T>

Source§

impl<'a, T: DeepView> ExecSpecEq<'a> for &'a Vec<T>
where &'a T: ExecSpecEq<'a, Other = &'a T>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a Vec<T>

Source§

impl<'a, T: DeepView> ExecSpecEq<'a> for &'a [T]
where &'a T: ExecSpecEq<'a, Other = &'a T>,

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a [T]

Source§

impl<'a> ExecSpecEq<'a> for &'a String

Required for comparing, e.g., Vec<String>s.

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a String

Source§

impl<'a> ExecSpecEq<'a> for &'a bool

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a bool

Source§

impl<'a> ExecSpecEq<'a> for &'a char

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a char

Source§

impl<'a> ExecSpecEq<'a> for &'a i8

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a i8

Source§

impl<'a> ExecSpecEq<'a> for &'a i16

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a i16

Source§

impl<'a> ExecSpecEq<'a> for &'a i32

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a i32

Source§

impl<'a> ExecSpecEq<'a> for &'a i64

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a i64

Source§

impl<'a> ExecSpecEq<'a> for &'a i128

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a i128

Source§

impl<'a> ExecSpecEq<'a> for &'a isize

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a isize

Source§

impl<'a> ExecSpecEq<'a> for &'a str

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a str

Source§

impl<'a> ExecSpecEq<'a> for &'a u8

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a u8

Source§

impl<'a> ExecSpecEq<'a> for &'a u16

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a u16

Source§

impl<'a> ExecSpecEq<'a> for &'a u32

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a u32

Source§

impl<'a> ExecSpecEq<'a> for &'a u64

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a u64

Source§

impl<'a> ExecSpecEq<'a> for &'a u128

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a u128

Source§

impl<'a> ExecSpecEq<'a> for &'a usize

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = &'a usize

Source§

impl<'a> ExecSpecEq<'a> for bool

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = bool

Source§

impl<'a> ExecSpecEq<'a> for char

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = char

Source§

impl<'a> ExecSpecEq<'a> for i8

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = i8

Source§

impl<'a> ExecSpecEq<'a> for i16

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = i16

Source§

impl<'a> ExecSpecEq<'a> for i32

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = i32

Source§

impl<'a> ExecSpecEq<'a> for i64

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = i64

Source§

impl<'a> ExecSpecEq<'a> for i128

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = i128

Source§

impl<'a> ExecSpecEq<'a> for isize

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = isize

Source§

impl<'a> ExecSpecEq<'a> for u8

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = u8

Source§

impl<'a> ExecSpecEq<'a> for u16

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = u16

Source§

impl<'a> ExecSpecEq<'a> for u32

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = u32

Source§

impl<'a> ExecSpecEq<'a> for u64

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = u64

Source§

impl<'a> ExecSpecEq<'a> for u128

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = u128

Source§

impl<'a> ExecSpecEq<'a> for usize

Source§

exec fn exec_eq(this: Self, other: Self::Other) -> bool

Source§

type Other = usize

Implementors§

Source§

impl<'a, T: DeepView + DeepViewClone + Hash + Eq> ExecSpecEq<'a> for &'a ExecMultiset<T>
where &'a T: ExecSpecEq<'a, Other = &'a T>,