std::cmp::Ordering - Rust (original) (raw)
Enum std::cmp::Ordering1.0.0 [−] [src]
pub enum Ordering { Less, Equal, Greater, }
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].
impl [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
pub fn [reverse](#method.reverse)(self) -> [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
Reverses the Ordering
.
Less
becomesGreater
.Greater
becomesLess
.Equal
becomesEqual
.
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 mut 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
pub fn [then](#method.then)(self, other: [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")) -> [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
1.17.0
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
`pub fn then_with(self, f: F) -> Ordering where
1.17.0
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
impl [Debug](../../std/fmt/trait.Debug.html "trait std::fmt::Debug") for [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
impl [Hash](../../std/hash/trait.Hash.html "trait std::hash::Hash") for [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
impl [Clone](../../std/clone/trait.Clone.html "trait std::clone::Clone") for [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
impl [PartialOrd](../../std/cmp/trait.PartialOrd.html "trait std::cmp::PartialOrd")<[Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")> for [Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")
[src]
fn [partial_cmp](../../std/cmp/trait.PartialOrd.html#tymethod.partial%5Fcmp)(&self, other: &[Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")) -> [Option](../../std/option/enum.Option.html "enum std::option::Option")<[Ordering](../../std/cmp/enum.Ordering.html "enum std::cmp::Ordering")>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn [lt](../../std/cmp/trait.PartialOrd.html#method.lt)(&self, other: [&](../primitive.reference.html)Rhs) -> [bool](../primitive.bool.html)
[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn [le](../../std/cmp/trait.PartialOrd.html#method.le)(&self, other: [&](../primitive.reference.html)Rhs) -> [bool](../primitive.bool.html)
[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn [gt](../../std/cmp/trait.PartialOrd.html#method.gt)(&self, other: [&](../primitive.reference.html)Rhs) -> [bool](../primitive.bool.html)
[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn [ge](../../std/cmp/trait.PartialOrd.html#method.ge)(&self, other: [&](../primitive.reference.html)Rhs) -> [bool](../primitive.bool.html)
[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more