ordinal_map/ordinal/impls/
ordering.rs1use std::cmp::Ordering;
2
3use crate::Ordinal;
4
5impl Ordinal for Ordering {
6 const ORDINAL_SIZE: usize = 3;
7
8 fn ordinal(&self) -> usize {
9 match self {
10 Ordering::Less => 0,
11 Ordering::Equal => 1,
12 Ordering::Greater => 2,
13 }
14 }
15
16 fn from_ordinal(ordinal: usize) -> Option<Self> {
17 match ordinal {
18 0 => Some(Ordering::Less),
19 1 => Some(Ordering::Equal),
20 2 => Some(Ordering::Greater),
21 _ => None,
22 }
23 }
24}
25
26#[cfg(test)]
27mod tests {
28 use std::cmp::Ordering;
29
30 use crate::tests::util::test_ordinal;
31
32 #[test]
33 fn test_ordering() {
34 test_ordinal([Ordering::Less, Ordering::Equal, Ordering::Greater]);
35 }
36}