pub trait Eq {
/// Evaluates if two values of the same type are equal.
///
/// # Arguments
///
/// * `other`: [Self] - The value of the same type.
///
/// # Returns
///
/// * [bool] - `true` if the values are equal, otherwise `false`.
///
/// # Examples
///
/// ```sway
/// struct MyStruct {
/// val: u64,
/// }
///
/// impl Eq for MyStruct {
/// fn eq(self, other: Self) -> bool {
/// self.val == other.val
/// }
/// }
///
/// fn foo() {
/// let struct1 = MyStruct { val: 2 };
/// let struct2 = MyStruct { val: 2 };
/// let result = struct1 == struct2;
/// assert(result);
/// }
/// ```
fn eq(self, other: Self) -> bool;
} {
/// Evaluates if two values of the same type are not equal.
///
/// # Additional Information
///
/// This function is inherited when `eq()` is implemented.
///
/// # Arguments
///
/// * `other`: [Self] - The value of the same type.
///
/// # Returns
///
/// * [bool] - `true` if the two values are not equal, otherwise `false`.
///
/// # Examples
///
/// ```sway
/// struct MyStruct {
/// val: u64,
/// }
///
/// impl Eq for MyStruct {
/// fn eq(self, other: Self) -> bool {
/// self.val == other.val
/// }
/// }
///
/// fn foo() {
/// let struct1 = MyStruct { val: 10 };
/// let struct2 = MyStruct { val: 2 };
/// let result = struct1 != struct2;
/// assert(result);
/// }
/// ```
fn neq(self, other: Self) -> bool {
(self.eq(other)).not()
}
}
Expand description
Trait to evaluate if two types are equal.
Required Methods
fn eq(self, other: Self) -> bool
fn eq(self, other: Self) -> bool
Evaluates if two values of the same type are equal.
Arguments
other
: [Self] - The value of the same type.
Returns
- [bool] -
true
if the values are equal, otherwisefalse
.
Examples
struct MyStruct {
val: u64,
}
impl Eq for MyStruct {
fn eq(self, other: Self) -> bool {
self.val == other.val
}
}
fn foo() {
let struct1 = MyStruct { val: 2 };
let struct2 = MyStruct { val: 2 };
let result = struct1 == struct2;
assert(result);
}