#[repr(i8)]
pub enum Ordering {
Less,
Equal,
Greater,
}Expand description
Variants
Less
An ordering where a compared value is less than another.
Equal
An ordering where a compared value is equal to another.
Greater
An ordering where a compared value is greater than another.
Implementations
impl Ordering
source
impl Ordering
sourcepub const fn reverse(self) -> Ordering
const: 1.48.0 · source
pub const fn reverse(self) -> Ordering
const: 1.48.0 · sourceReverses the Ordering.
LessbecomesGreater.GreaterbecomesLess.EqualbecomesEqual.
Examples
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);RunThis method can be used to reverse a comparison:
let data: &mut [_] = &mut [2, 10, 5, 8];
// sort the array from largest to smallest.
data.sort_by(|a, b| a.cmp(b).reverse());
let b: &mut [_] = &mut [10, 8, 5, 2];
assert!(data == b);Runpub const fn then(self, other: Ordering) -> Ordering
1.17.0 (const: 1.48.0) · source
pub const fn then(self, other: Ordering) -> Ordering
1.17.0 (const: 1.48.0) · sourceChains two orderings.
Returns self when it’s not Equal. Otherwise returns other.
Examples
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);Runpub fn then_with<F: FnOnce() -> Ordering>(self, f: F) -> Ordering
1.17.0 · source
pub fn then_with<F: FnOnce() -> Ordering>(self, f: F) -> Ordering
1.17.0 · sourceChains the ordering with the given function.
Returns self when it’s not Equal. Otherwise calls f and returns
the result.
Examples
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);RunTrait Implementations
impl Ord for Ordering
source
impl Ord for Ordering
sourcefn max(self, other: Self) -> Self where
Self: Sized,
1.21.0 · source
fn max(self, other: Self) -> Self where
Self: Sized,
1.21.0 · sourceCompares and returns the maximum of two values. Read more
impl PartialOrd<Ordering> for Ordering
source
impl PartialOrd<Ordering> for Ordering
sourcefn partial_cmp(&self, other: &Ordering) -> Option<Ordering>
source
fn partial_cmp(&self, other: &Ordering) -> Option<Ordering>
sourceThis method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
source
fn lt(&self, other: &Rhs) -> bool
sourceThis method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &Rhs) -> bool
source
fn le(&self, other: &Rhs) -> bool
sourceThis method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl Copy for Ordering
sourceimpl Eq for Ordering
sourceimpl StructuralEq for Ordering
sourceimpl StructuralPartialEq for Ordering
sourceAuto Trait Implementations
impl RefUnwindSafe for Ordering
impl Send for Ordering
impl Sync for Ordering
impl Unpin for Ordering
impl UnwindSafe for Ordering
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
source
impl<T> BorrowMut<T> for T where
T: ?Sized,
sourcefn borrow_mut(&mut self) -> &mut T
const: unstable · source
fn borrow_mut(&mut self) -> &mut T
const: unstable · sourceMutably borrows from an owned value. Read more