@@ -30,6 +30,7 @@ struct Package {
30
30
}
31
31
32
32
impl Package : cmp:: Ord {
33
+ #[ cfg( stage0) ]
33
34
pure fn lt ( other : & Package ) -> bool {
34
35
if self . name . lt ( & ( * other) . name ) { return true ; }
35
36
if ( * other) . name . lt ( & self . name ) { return false ; }
@@ -46,9 +47,39 @@ impl Package : cmp::Ord {
46
47
if self . versions . lt ( & ( * other) . versions ) { return true ; }
47
48
return false ;
48
49
}
50
+ #[ cfg( stage1) ]
51
+ #[ cfg( stage2) ]
52
+ pure fn lt ( & self , other : & Package ) -> bool {
53
+ if ( * self ) . name . lt ( & ( * other) . name ) { return true ; }
54
+ if ( * other) . name . lt ( & ( * self ) . name ) { return false ; }
55
+ if ( * self ) . uuid . lt ( & ( * other) . uuid ) { return true ; }
56
+ if ( * other) . uuid . lt ( & ( * self ) . uuid ) { return false ; }
57
+ if ( * self ) . url . lt ( & ( * other) . url ) { return true ; }
58
+ if ( * other) . url . lt ( & ( * self ) . url ) { return false ; }
59
+ if ( * self ) . method . lt ( & ( * other) . method ) { return true ; }
60
+ if ( * other) . method . lt ( & ( * self ) . method ) { return false ; }
61
+ if ( * self ) . description . lt ( & ( * other) . description ) { return true ; }
62
+ if ( * other) . description . lt ( & ( * self ) . description ) { return false ; }
63
+ if ( * self ) . tags . lt ( & ( * other) . tags ) { return true ; }
64
+ if ( * other) . tags . lt ( & ( * self ) . tags ) { return false ; }
65
+ if ( * self ) . versions . lt ( & ( * other) . versions ) { return true ; }
66
+ return false ;
67
+ }
68
+ #[ cfg( stage0) ]
49
69
pure fn le ( other : & Package ) -> bool { !( * other) . lt ( & self ) }
70
+ #[ cfg( stage1) ]
71
+ #[ cfg( stage2) ]
72
+ pure fn le ( & self , other : & Package ) -> bool { !( * other) . lt ( & ( * self ) ) }
73
+ #[ cfg( stage0) ]
50
74
pure fn ge ( other : & Package ) -> bool { !self . lt ( other) }
75
+ #[ cfg( stage1) ]
76
+ #[ cfg( stage2) ]
77
+ pure fn ge ( & self , other : & Package ) -> bool { !( * self ) . lt ( other) }
78
+ #[ cfg( stage0) ]
51
79
pure fn gt ( other : & Package ) -> bool { ( * other) . lt ( & self ) }
80
+ #[ cfg( stage1) ]
81
+ #[ cfg( stage2) ]
82
+ pure fn gt ( & self , other : & Package ) -> bool { ( * other) . lt ( & ( * self ) ) }
52
83
}
53
84
54
85
struct Source {
@@ -94,10 +125,20 @@ struct Options {
94
125
enum Mode { SystemMode , UserMode , LocalMode }
95
126
96
127
impl Mode : cmp:: Eq {
128
+ #[ cfg( stage0) ]
97
129
pure fn eq ( other : & Mode ) -> bool {
98
130
( self as uint ) == ( ( * other) as uint )
99
131
}
132
+ #[ cfg( stage1) ]
133
+ #[ cfg( stage2) ]
134
+ pure fn eq ( & self , other : & Mode ) -> bool {
135
+ ( ( * self ) as uint ) == ( ( * other) as uint )
136
+ }
137
+ #[ cfg( stage0) ]
100
138
pure fn ne ( other : & Mode ) -> bool { !self . eq ( other) }
139
+ #[ cfg( stage1) ]
140
+ #[ cfg( stage2) ]
141
+ pure fn ne ( & self , other : & Mode ) -> bool { !( * self ) . eq ( other) }
101
142
}
102
143
103
144
fn opts ( ) -> ~[ getopts:: Opt ] {
0 commit comments