logo

Enum std::cmp::Ordering

1.0.0 · source ·
#[repr(i8)]
pub enum Ordering {
 Less,
 Equal,
 Greater,
}
Expand description

An Ordering is the result of a comparison between two values.

Examples

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

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

source

impl Ordering

1.53.0 (const: 1.53.0) · source

pub const fn is_eq(self) -> bool

Returns true if the ordering is the Equal variant.

Examples
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
1.53.0 (const: 1.53.0) · source

pub const fn is_ne(self) -> bool

Returns true if the ordering is not the Equal variant.

Examples
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
1.53.0 (const: 1.53.0) · source

pub const fn is_lt(self) -> bool

Returns true if the ordering is the Less variant.

Examples
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
1.53.0 (const: 1.53.0) · source

pub const fn is_gt(self) -> bool

Returns true if the ordering is the Greater variant.

Examples
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
1.53.0 (const: 1.53.0) · source

pub const fn is_le(self) -> bool

Returns true if the ordering is either the Less or Equal variant.

Examples
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
1.53.0 (const: 1.53.0) · source

pub const fn is_ge(self) -> bool

Returns true if the ordering is either the Greater or Equal variant.

Examples
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
const: 1.48.0 · source

pub const fn reverse(self) -> Ordering

Reverses the Ordering.

  • Less becomes Greater.
  • Greater becomes Less.
  • Equal becomes Equal.
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);
Run

This 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);
Run
1.17.0 (const: 1.48.0) · source

pub const fn then(self, other: Ordering) -> Ordering

Chains 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);
Run
1.17.0 · source

pub fn then_with<F>(self, f: F) -> Ordering where
F: FnOnce() -> Ordering,

Chains 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);
Run

Trait Implementations

source

impl Clone for Ordering

source

fn clone(&self) -> Ordering

Returns a copy of the value. Read more

source

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

source

impl Debug for Ordering

source

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

source

impl Hash for Ordering

source

fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,

Feeds this value into the given Hasher. Read more

1.3.0 · source

fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,

Feeds a slice of this type into the given Hasher. Read more

const: unstable · source

impl Ord for Ordering

const: unstable · source

fn cmp(&self, other: &Ordering) -> Ordering

This method returns an Ordering between self and other. Read more

1.21.0 · source

fn max(self, other: Self) -> Self

Compares and returns the maximum of two values. Read more

1.21.0 · source

fn min(self, other: Self) -> Self

Compares and returns the minimum of two values. Read more

1.50.0 · source

fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,

Restrict a value to a certain interval. Read more

source

impl PartialEq<Ordering> for Ordering

source

fn eq(&self, other: &Ordering) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

source

fn ne(&self, other: &Rhs) -> bool

This method tests for !=.

const: unstable · source

impl PartialOrd<Ordering> for Ordering

const: unstable · source

fn partial_cmp(&self, other: &Ordering) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more

source

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more

source

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

source

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more

source

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

source

impl Copy for Ordering

source

impl Eq for Ordering

source

impl StructuralEq for Ordering

source

impl StructuralPartialEq for Ordering

Auto Trait Implementations

impl RefUnwindSafe for Ordering

impl Send for Ordering

impl Sync for Ordering

impl Unpin for Ordering

impl UnwindSafe for Ordering

Blanket Implementations

source

impl<T> Any for T where
T: 'static + ?Sized,

source

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more

source

impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source

impl<T> From<T> for T

const: unstable · source

fn from(t: T) -> T

Returns the argument unchanged.

source

impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · source

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source

impl<T> ToOwned for T where
T: Clone,

type Owned = T

The resulting type after obtaining ownership.

source

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more

source

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more

source

impl<T, U> TryFrom<U> for T where
U: Into<T>,

type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

const: unstable · source

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

AltStyle によって変換されたページ (->オリジナル) /