# Module std::cmp

1.0.0 · source ·
Expand description

Utilities for comparing and ordering values.

This module contains various tools for comparing and ordering values. In summary:

- `PartialEq<Rhs>` overloads the `==` and `!=` operators. In cases where `Rhs` (the right hand side’s type) is `Self`, this trait corresponds to a partial equivalence relation.
- `Eq` indicates that the overloaded `==` operator corresponds to an equivalence relation.
- `Ord` and `PartialOrd` are traits that allow you to define total and partial orderings between values, respectively. Implementing them overloads the `<`, `<=`, `>`, and `>=` operators.
- `Ordering` is an enum returned by the main functions of `Ord` and `PartialOrd`, and describes an ordering of two values (less, equal, or greater).
- `Reverse` is a struct that allows you to easily reverse an ordering.
- `max` and `min` are functions that build off of `Ord` and allow you to find the maximum or minimum of two values.

For more details, see the respective documentation of each item in the list.

## Structs

- Reverse
  A helper struct for reverse ordering.

## Enums

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

## Traits

- Eq
  Trait for comparisons corresponding to equivalence relations.
- Ord
  Trait for types that form a total order.
- PartialEq
  Trait for comparisons using the equality operator.
- PartialOrd
  Trait for types that form a partial order.

## Functions

- minmax Experimental
  Compares and sorts two values, returning minimum and maximum.
- minmax_by Experimental
  Returns minimum and maximum values with respect to the specified comparison function.
- minmax_by_key Experimental
  Returns minimum and maximum values with respect to the specified key function.
- max
  Compares and returns the maximum of two values.
- max_by
  Returns the maximum of two values with respect to the specified comparison function.
- max_by_key
  Returns the element that gives the maximum value from the specified function.
- min
  Compares and returns the minimum of two values.
- min_by
  Returns the minimum of two values with respect to the specified comparison function.
- min_by_key
  Returns the element that gives the minimum value from the specified function.

## Derive Macros

- Eq
  Derive macro generating an impl of the trait `Eq`.
- Ord
  Derive macro generating an impl of the trait `Ord`. The behavior of this macro is described in detail here.
- PartialEq
  Derive macro generating an impl of the trait `PartialEq`. The behavior of this macro is described in detail here.
- PartialOrd
  Derive macro generating an impl of the trait `PartialOrd`. The behavior of this macro is described in detail here.