- PartialOrd
Compare structs for partial ordering (sorting) - PartialOrd
- PartialOrd
- Neither the Eq nor the Ord traits are implemented for floats.
examples/struct/compare-structs-for-partial-ordering/src/main.rs
#[derive(PartialEq, PartialOrd)] struct Thing { number: i32, float: f32, } fn main() { let a = Thing { number: 42, float: 1.0, }; let b = Thing { number: 43, float: 1.0, }; let c = Thing { number: 42, float: 0.9, }; let d = Thing { number: 43, float: 0.9, }; println!("{}", a < b); // becasue 42 < 43 println!("{}", c < b); // becasue 42 < 43 and also 0.9 < 1.0 println!("{}", c < a); // because 0.0 < 1.0 println!("{}", c < d); // because 42 < 43 println!("{}", a < d); // because 42 < 43 // the comparisions is in the order of declaraion of the fields }
true true true true true