pub enum Ordering {
Less,
Equal,
Greater,
}Expand description
An Ordering is the result of a comparison between two values.
use std::cmp::Ordering;
let result = 1.cmp(&2);
assert_eq!(Ordering::Less, result);
let result = 1.cmp(&1);
assert_eq!(Ordering::Equal, result);
let result = 2.cmp(&1);
assert_eq!(Ordering::Greater, result);
Run
An ordering where a compared value is less than another.
An ordering where a compared value is equal to another.
An ordering where a compared value is greater than another.
#[must_use]
pub const fn is_eq(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is the Equal variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_eq(), false);
assert_eq!(Ordering::Equal.is_eq(), true);
assert_eq!(Ordering::Greater.is_eq(), false);
Run
#[must_use]
pub const fn is_ne(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is not the Equal variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_ne(), true);
assert_eq!(Ordering::Equal.is_ne(), false);
assert_eq!(Ordering::Greater.is_ne(), true);
Run
#[must_use]
pub const fn is_lt(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is the Less variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_lt(), true);
assert_eq!(Ordering::Equal.is_lt(), false);
assert_eq!(Ordering::Greater.is_lt(), false);
Run
#[must_use]
pub const fn is_gt(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is the Greater variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_gt(), false);
assert_eq!(Ordering::Equal.is_gt(), false);
assert_eq!(Ordering::Greater.is_gt(), true);
Run
#[must_use]
pub const fn is_le(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is either the Less or Equal variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_le(), true);
assert_eq!(Ordering::Equal.is_le(), true);
assert_eq!(Ordering::Greater.is_le(), false);
Run
#[must_use]
pub const fn is_ge(self) -> bool1.53.0 (const: 1.53.0)[src]
Returns true if the ordering is either the Greater or Equal variant.
use std::cmp::Ordering;
assert_eq!(Ordering::Less.is_ge(), false);
assert_eq!(Ordering::Equal.is_ge(), true);
assert_eq!(Ordering::Greater.is_ge(), true);
Run
Reverses the Ordering.
Less becomes Greater.
Greater becomes Less.
Equal becomes Equal.
Basic behavior:
use std::cmp::Ordering;
assert_eq!(Ordering::Less.reverse(), Ordering::Greater);
assert_eq!(Ordering::Equal.reverse(), Ordering::Equal);
assert_eq!(Ordering::Greater.reverse(), Ordering::Less);
Run
This method can be used to reverse a comparison:
let data: &mut [_] = &mut [2, 10, 5, 8];
data.sort_by(|a, b| a.cmp(b).reverse());
let b: &mut [_] = &mut [10, 8, 5, 2];
assert!(data == b);
Run
Chains two orderings.
Returns self when it’s not Equal. Otherwise returns other.
use std::cmp::Ordering;
let result = Ordering::Equal.then(Ordering::Less);
assert_eq!(result, Ordering::Less);
let result = Ordering::Less.then(Ordering::Equal);
assert_eq!(result, Ordering::Less);
let result = Ordering::Less.then(Ordering::Greater);
assert_eq!(result, Ordering::Less);
let result = Ordering::Equal.then(Ordering::Equal);
assert_eq!(result, Ordering::Equal);
let x: (i64, i64, i64) = (1, 2, 7);
let y: (i64, i64, i64) = (1, 5, 3);
let result = x.0.cmp(&y.0).then(x.1.cmp(&y.1)).then(x.2.cmp(&y.2));
assert_eq!(result, Ordering::Less);
Run
Chains the ordering with the given function.
Returns self when it’s not Equal. Otherwise calls f and returns
the result.
use std::cmp::Ordering;
let result = Ordering::Equal.then_with(|| Ordering::Less);
assert_eq!(result, Ordering::Less);
let result = Ordering::Less.then_with(|| Ordering::Equal);
assert_eq!(result, Ordering::Less);
let result = Ordering::Less.then_with(|| Ordering::Greater);
assert_eq!(result, Ordering::Less);
let result = Ordering::Equal.then_with(|| Ordering::Equal);
assert_eq!(result, Ordering::Equal);
let x: (i64, i64, i64) = (1, 2, 7);
let y: (i64, i64, i64) = (1, 5, 3);
let result = x.0.cmp(&y.0).then_with(|| x.1.cmp(&y.1)).then_with(|| x.2.cmp(&y.2));
assert_eq!(result, Ordering::Less);
Run
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
#[must_use]
fn max(self, other: Self) -> Self where
Self: Sized, 1.21.0[src]
Compares and returns the maximum of two values. Read more
#[must_use]
fn min(self, other: Self) -> Self where
Self: Sized, 1.21.0[src]
Compares and returns the minimum of two values. Read more
#[must_use]
fn clamp(self, min: Self, max: Self) -> Self where
Self: Sized, 1.50.0[src]
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used
by ==. Read more
#[must_use]
fn ne(&self, other: &Rhs) -> bool[src]
This method tests for !=.
This method returns an ordering between self and other values if one exists. Read more
#[must_use]
fn lt(&self, other: &Rhs) -> bool[src]
This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]
fn le(&self, other: &Rhs) -> bool[src]
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
#[must_use]
fn gt(&self, other: &Rhs) -> bool[src]
This method tests greater than (for self and other) and is used by the > operator. Read more
#[must_use]
fn ge(&self, other: &Rhs) -> bool[src]
This method tests greater than or equal to (for self and other) and is used by the >=
operator. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
The type returned in the event of a conversion error.
The type returned in the event of a conversion error.