@@ -26,6 +26,7 @@ type package = {
26
26
versions : ~[ ( ~str , ~str ) ]
27
27
} ;
28
28
29
+ #[ cfg( stage0) ]
29
30
impl package : cmp:: Ord {
30
31
pure fn lt ( & & other: package ) -> bool {
31
32
if self . name . lt ( other. name ) { return true ; }
@@ -47,6 +48,29 @@ impl package : cmp::Ord {
47
48
pure fn ge ( & & other: package ) -> bool { !self . lt ( other) }
48
49
pure fn gt ( & & other: package ) -> bool { other. lt ( self ) }
49
50
}
51
+ #[ cfg( stage1) ]
52
+ #[ cfg( stage2) ]
53
+ impl package : cmp:: Ord {
54
+ pure fn lt ( other : & package ) -> bool {
55
+ if self . name . lt ( & ( * other) . name ) { return true ; }
56
+ if ( * other) . name . lt ( & self . name ) { return false ; }
57
+ if self . uuid . lt ( & ( * other) . uuid ) { return true ; }
58
+ if ( * other) . uuid . lt ( & self . uuid ) { return false ; }
59
+ if self . url . lt ( & ( * other) . url ) { return true ; }
60
+ if ( * other) . url . lt ( & self . url ) { return false ; }
61
+ if self . method . lt ( & ( * other) . method ) { return true ; }
62
+ if ( * other) . method . lt ( & self . method ) { return false ; }
63
+ if self . description . lt ( & ( * other) . description ) { return true ; }
64
+ if ( * other) . description . lt ( & self . description ) { return false ; }
65
+ if self . tags . lt ( & ( * other) . tags ) { return true ; }
66
+ if ( * other) . tags . lt ( & self . tags ) { return false ; }
67
+ if self . versions . lt ( & ( * other) . versions ) { return true ; }
68
+ return false ;
69
+ }
70
+ pure fn le ( other : & package ) -> bool { !( * other) . lt ( & self ) }
71
+ pure fn ge ( other : & package ) -> bool { !self . lt ( other) }
72
+ pure fn gt ( other : & package ) -> bool { ( * other) . lt ( & self ) }
73
+ }
50
74
51
75
type local_package = {
52
76
name : ~str ,
@@ -97,12 +121,21 @@ type options = {
97
121
98
122
enum mode { system_mode, user_mode, local_mode }
99
123
124
+ #[ cfg( stage0) ]
100
125
impl mode : cmp:: Eq {
101
126
pure fn eq ( & & other: mode ) -> bool {
102
127
( self as uint ) == ( other as uint )
103
128
}
104
129
pure fn ne ( & & other: mode ) -> bool { !self . eq ( other) }
105
130
}
131
+ #[ cfg( stage1) ]
132
+ #[ cfg( stage2) ]
133
+ impl mode : cmp:: Eq {
134
+ pure fn eq ( other : & mode ) -> bool {
135
+ ( self as uint ) == ( ( * other) as uint )
136
+ }
137
+ pure fn ne ( other : & mode ) -> bool { !self . eq ( other) }
138
+ }
106
139
107
140
fn opts ( ) -> ~[ getopts:: Opt ] {
108
141
~[ optflag ( ~"g") , optflag ( ~"G ") , optflag ( ~"test") ,
0 commit comments