10
10
11
11
/// A very simple BitVector type.
12
12
pub struct BitVector {
13
- data : Vec < u64 >
13
+ data : Vec < u64 > ,
14
14
}
15
15
16
16
impl BitVector {
@@ -40,7 +40,9 @@ impl BitVector {
40
40
for ( i, j) in self . data . iter_mut ( ) . zip ( & all. data ) {
41
41
let value = * i;
42
42
* i = value | * j;
43
- if value != * i { changed = true ; }
43
+ if value != * i {
44
+ changed = true ;
45
+ }
44
46
}
45
47
changed
46
48
}
@@ -56,15 +58,15 @@ impl BitVector {
56
58
BitVectorIter {
57
59
iter : self . data . iter ( ) ,
58
60
current : 0 ,
59
- idx : 0
61
+ idx : 0 ,
60
62
}
61
63
}
62
64
}
63
65
64
66
pub struct BitVectorIter < ' a > {
65
67
iter : :: std:: slice:: Iter < ' a , u64 > ,
66
68
current : u64 ,
67
- idx : usize
69
+ idx : usize ,
68
70
}
69
71
70
72
impl < ' a > Iterator for BitVectorIter < ' a > {
@@ -108,7 +110,7 @@ impl BitMatrix {
108
110
let u64s_per_elem = u64s ( elements) ;
109
111
BitMatrix {
110
112
elements : elements,
111
- vector : vec ! [ 0 ; elements * u64s_per_elem]
113
+ vector : vec ! [ 0 ; elements * u64s_per_elem] ,
112
114
}
113
115
}
114
116
@@ -123,9 +125,9 @@ impl BitMatrix {
123
125
let ( start, _) = self . range ( source) ;
124
126
let ( word, mask) = word_mask ( target) ;
125
127
let mut vector = & mut self . vector [ ..] ;
126
- let v1 = vector[ start+ word] ;
128
+ let v1 = vector[ start + word] ;
127
129
let v2 = v1 | mask;
128
- vector[ start+ word] = v2;
130
+ vector[ start + word] = v2;
129
131
v1 != v2
130
132
}
131
133
@@ -136,7 +138,7 @@ impl BitMatrix {
136
138
pub fn contains ( & self , source : usize , target : usize ) -> bool {
137
139
let ( start, _) = self . range ( source) ;
138
140
let ( word, mask) = word_mask ( target) ;
139
- ( self . vector [ start+ word] & mask) != 0
141
+ ( self . vector [ start + word] & mask) != 0
140
142
}
141
143
142
144
/// Returns those indices that are reachable from both `a` and
@@ -150,8 +152,12 @@ impl BitMatrix {
150
152
for ( base, ( i, j) ) in ( a_start..a_end) . zip ( b_start..b_end) . enumerate ( ) {
151
153
let mut v = self . vector [ i] & self . vector [ j] ;
152
154
for bit in 0 ..64 {
153
- if v == 0 { break ; }
154
- if v & 0x1 != 0 { result. push ( base* 64 + bit) ; }
155
+ if v == 0 {
156
+ break ;
157
+ }
158
+ if v & 0x1 != 0 {
159
+ result. push ( base * 64 + bit) ;
160
+ }
155
161
v >>= 1 ;
156
162
}
157
163
}
@@ -170,9 +176,7 @@ impl BitMatrix {
170
176
let ( write_start, write_end) = self . range ( write) ;
171
177
let vector = & mut self . vector [ ..] ;
172
178
let mut changed = false ;
173
- for ( read_index, write_index) in
174
- ( read_start..read_end) . zip ( write_start..write_end)
175
- {
179
+ for ( read_index, write_index) in ( read_start..read_end) . zip ( write_start..write_end) {
176
180
let v1 = vector[ write_index] ;
177
181
let v2 = v1 | vector[ read_index] ;
178
182
vector[ write_index] = v2;
@@ -204,7 +208,8 @@ fn bitvec_iter_works() {
204
208
bitvec. insert ( 65 ) ;
205
209
bitvec. insert ( 66 ) ;
206
210
bitvec. insert ( 99 ) ;
207
- assert_eq ! ( bitvec. iter( ) . collect:: <Vec <_>>( ) , [ 1 , 10 , 19 , 62 , 63 , 64 , 65 , 66 , 99 ] ) ;
211
+ assert_eq ! ( bitvec. iter( ) . collect:: <Vec <_>>( ) ,
212
+ [ 1 , 10 , 19 , 62 , 63 , 64 , 65 , 66 , 99 ] ) ;
208
213
}
209
214
210
215
#[ test]
@@ -217,7 +222,8 @@ fn bitvec_iter_works_2() {
217
222
bitvec. insert ( 66 ) ;
218
223
bitvec. insert ( 99 ) ;
219
224
bitvec. insert ( 299 ) ;
220
- assert_eq ! ( bitvec. iter( ) . collect:: <Vec <_>>( ) , [ 1 , 10 , 19 , 62 , 66 , 99 , 299 ] ) ;
225
+ assert_eq ! ( bitvec. iter( ) . collect:: <Vec <_>>( ) ,
226
+ [ 1 , 10 , 19 , 62 , 66 , 99 , 299 ] ) ;
221
227
222
228
}
223
229
0 commit comments