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

Defines the PartialOrd and PartialEq comparison traits.

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:

 // Our type.
 struct SketchyNum {
     num : int
 }

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

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

Enums

Ordering

An ordering is, e.g, a result of a comparison between two values.

Traits

Eq

Trait for equality comparisons which are equivalence relations.

Equiv

The equivalence relation. Two values may be equivalent even if they are of different types. The most common use case for this relation is container types; e.g. it is often desirable to be able to use &str values to look up entries in a container with String keys.

Ord

Trait for types that form a total order.

PartialEq

Trait for values that can be compared for equality and inequality.

PartialOrd

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

Functions

lexical_ordering

Combine orderings, lexically.

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.