cmporder 0.1.0

macros for prioritized Ord/PartialOrd
Documentation
  • Coverage
  • 0%
    0 out of 3 items documented0 out of 2 items with examples
  • Size
  • Source code size: 15.53 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.03 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 49s Average build duration of successful builds.
  • all releases: 1m 2s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • acheul/cmporder-rs
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • acheul
cmporder-0.1.0 has been yanked.

CmpOrder

Simple Macros to implement prioritized Ord/PartialOrd

Examples

cmp_order

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
struct ABC {
    a: u8,
    b: u8,
}

impl Ord for ABC {
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        // priority:
        // 1) self.a.cmp(&other.a)
        // 2) self.b.cmp(&other.b)
        cmp_order!(self.a.cmp(&other.a), self.b.cmp(&other.b))
    }
}

impl PartialOrd for ABC {
    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
        Some(self.cmp(other))
    }
}

partial_cmp_order

impl PartialOrd for ABC {
    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
        // priority:
        // 1) self.a.partial_cmp(&other.a)
        // 2) self.b.partial_cmp(&other.b)
        partial_cmp_order!(self.a.partial_cmp(&other.a), self.b.partial_cmp(&other.b))
    }
}