Module std::cmpStable [-] [+] [src]

Functionality for ordering and comparison.

This module defines both PartialOrd and PartialEq traits which are used by the compiler to implement comparison operators. Rust programs may implement PartialOrd to overload the <, <=, >, and >= operators, and may implement PartialEq to overload the == and != operators.

For example, to define a type with a customized definition for the PartialEq operators, you could do the following:

fn main() { use core::num::SignedInt; struct FuzzyNum { num: i32, } impl PartialEq for FuzzyNum { // Our custom eq allows numbers which are near each other to be equal! :D fn eq(&self, other: &FuzzyNum) -> bool { (self.num - other.num).abs() < 5 } } // Now these binary operators will work when applied! assert!(FuzzyNum { num: 37 } == FuzzyNum { num: 34 }); assert!(FuzzyNum { num: 25 } != FuzzyNum { num: 57 }); }
use core::num::SignedInt;

struct FuzzyNum {
    num: i32,
}

impl PartialEq for FuzzyNum {
    // Our custom eq allows numbers which are near each other to be equal! :D
    fn eq(&self, other: &FuzzyNum) -> bool {
        (self.num - other.num).abs() < 5
    }
}

// Now these binary operators will work when applied!
assert!(FuzzyNum { num: 37 } == FuzzyNum { num: 34 });
assert!(FuzzyNum { num: 25 } != FuzzyNum { num: 57 });

Enums

Ordering

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

Traits

Eq

Trait for equality comparisons which are equivalence relations.

Ord

Trait for types that form a total order.

PartialEq

Trait for equality comparisons which are partial equivalence relations.

PartialOrd

Trait for values that can be compared for a sort-order.

Functions

max

Compare and return the maximum of two values.

min

Compare and return the minimum of two values.

partial_max

Compare and return the maximum of two values if there is one.

partial_min

Compare and return the minimum of two values if there is one.