pub trait OrdEq: Ord + Eq {
} {
/// Evaluates if one value of the same type is greater or equal to than another.
///
/// # Additional Information
///
/// This trait requires that the `Ord` and `Eq` traits are implemented.
///
/// # Arguments
///
/// * `other`: [Self] - The value of the same type.
///
/// # Returns
///
/// * [bool] - `true` if `self` is greater than or equal to `other`, otherwise `false`.
///
/// # Examples
///
/// ```sway
/// struct MyStruct {
/// val: u64,
/// }
///
/// impl Eq for MyStruct {
/// fn eq(self, other: Self) -> bool {
/// self.val == other.val
/// }
/// }
///
/// impl Ord for MyStruct {
/// fn gt(self, other: Self) -> bool {
/// self.val > other.val
/// }
/// }
///
/// impl OrdEq for MyStruct {}
///
/// fn foo() {
/// let struct1 = MyStruct { val: 10 };
/// let struct2 = MyStruct { val: 10 };
/// let result = struct1 >= struct2;
/// assert(result);
/// }
/// ```
fn ge(self, other: Self) -> bool {
self.gt(other) || self.eq(other)
}
/// Evaluates if one value of the same type is less or equal to than another.
///
/// # Additional Information
///
/// This trait requires that the `Ord` and `Eq` traits are implemented.
///
/// # Arguments
///
/// * `other`: [Self] - The value of the same type.
///
/// # Returns
///
/// * [bool] - `true` if `self` is less than or equal to `other`, otherwise `false`.
///
/// # Examples
///
/// ```sway
/// struct MyStruct {
/// val: u64,
/// }
///
/// impl Eq for MyStruct {
/// fn eq(self, other: Self) -> bool {
/// self.val == other.val
/// }
/// }
///
/// impl Ord for MyStruct {
/// fn lt(self, other: Self) -> bool {
/// self.val < other.val
/// }
/// }
///
/// impl OrdEq for MyStruct {}
///
/// fn foo() {
/// let struct1 = MyStruct { val: 10 };
/// let struct2 = MyStruct { val: 10 };
/// let result = struct1 <= struct2;
/// assert(result);
/// }
/// ```
fn le(self, other: Self) -> bool {
self.lt(other) || self.eq(other)
}
}
Expand description
Trait to evaluate if one value is greater than or equal, or less than or equal to another of the same type.