use vstd::prelude::*;
verus! {
pub trait ValueEq: Sized {
fn value_eq(&self, other: &Self) -> (equal: bool)
ensures equal == (*self == *other);
}
impl ValueEq for u64 {
fn value_eq(&self, other: &Self) -> (equal: bool) {
*self == *other
}
}
impl ValueEq for usize {
fn value_eq(&self, other: &Self) -> (equal: bool) {
*self == *other
}
}
impl ValueEq for (usize, usize, u64) {
fn value_eq(&self, other: &Self) -> (equal: bool) {
self.0 == other.0 && self.1 == other.1 && self.2 == other.2
}
}
}