@@ -45,62 +45,31 @@ pub trait TotalOrd {
45
45
fn cmp ( & self , other : & Self ) -> Ordering ;
46
46
}
47
47
48
- #[ inline( always) ]
49
- fn icmp < T : Ord > ( a : & T , b : & T ) -> Ordering {
50
- if * a < * b { Less }
51
- else if * a > * b { Greater }
52
- else { Equal }
53
- }
54
-
55
- impl TotalOrd for u8 {
56
- #[ inline( always) ]
57
- fn cmp ( & self , other : & u8 ) -> Ordering { icmp ( self , other) }
58
- }
59
-
60
- impl TotalOrd for u16 {
61
- #[ inline( always) ]
62
- fn cmp ( & self , other : & u16 ) -> Ordering { icmp ( self , other) }
63
- }
64
-
65
- impl TotalOrd for u32 {
66
- #[ inline( always) ]
67
- fn cmp ( & self , other : & u32 ) -> Ordering { icmp ( self , other) }
68
- }
69
-
70
- impl TotalOrd for u64 {
71
- #[ inline( always) ]
72
- fn cmp ( & self , other : & u64 ) -> Ordering { icmp ( self , other) }
73
- }
74
-
75
- impl TotalOrd for i8 {
76
- #[ inline( always) ]
77
- fn cmp ( & self , other : & i8 ) -> Ordering { icmp ( self , other) }
78
- }
79
-
80
- impl TotalOrd for i16 {
81
- #[ inline( always) ]
82
- fn cmp ( & self , other : & i16 ) -> Ordering { icmp ( self , other) }
83
- }
84
-
85
- impl TotalOrd for i32 {
86
- #[ inline( always) ]
87
- fn cmp ( & self , other : & i32 ) -> Ordering { icmp ( self , other) }
88
- }
48
+ macro_rules! totalord_impl(
49
+ ( $t: ty) => {
50
+ impl TotalOrd for $t {
51
+ #[ inline( always) ]
52
+ fn cmp( & self , other: & $t) -> Ordering {
53
+ if * self < * other { Less }
54
+ else if * self > * other { Greater }
55
+ else { Equal }
56
+ }
57
+ }
58
+ }
59
+ )
89
60
90
- impl TotalOrd for i64 {
91
- # [ inline ( always ) ]
92
- fn cmp ( & self , other : & i64 ) -> Ordering { icmp ( self , other ) }
93
- }
61
+ totalord_impl ! ( u8 )
62
+ totalord_impl ! ( u16 )
63
+ totalord_impl ! ( u32 )
64
+ totalord_impl ! ( u64 )
94
65
95
- impl TotalOrd for int {
96
- # [ inline ( always ) ]
97
- fn cmp ( & self , other : & int ) -> Ordering { icmp ( self , other ) }
98
- }
66
+ totalord_impl ! ( i8 )
67
+ totalord_impl ! ( i16 )
68
+ totalord_impl ! ( i32 )
69
+ totalord_impl ! ( i64 )
99
70
100
- impl TotalOrd for uint {
101
- #[ inline( always) ]
102
- fn cmp ( & self , other : & uint ) -> Ordering { icmp ( self , other) }
103
- }
71
+ totalord_impl ! ( int)
72
+ totalord_impl ! ( uint)
104
73
105
74
/**
106
75
* Trait for values that can be compared for a sort-order.
0 commit comments