@@ -103,42 +103,42 @@ where
103
103
}
104
104
105
105
impl Encodable for BundleStatus {
106
- fn consensus_encode < W : Write > ( & self , mut e : W ) -> Result < usize , std:: io:: Error > {
106
+ fn consensus_encode < W : Write + ? Sized > ( & self , e : & mut W ) -> Result < usize , std:: io:: Error > {
107
107
let mut written = 0 ;
108
108
109
109
match self {
110
110
BundleStatus :: Init => {
111
- written += 0x00u8 . consensus_encode ( & mut e) ?;
111
+ written += 0x00u8 . consensus_encode ( e) ?;
112
112
}
113
113
BundleStatus :: CfHeaders { cf_headers } => {
114
- written += 0x01u8 . consensus_encode ( & mut e) ?;
115
- written += VarInt ( cf_headers. len ( ) as u64 ) . consensus_encode ( & mut e) ?;
114
+ written += 0x01u8 . consensus_encode ( e) ?;
115
+ written += VarInt ( cf_headers. len ( ) as u64 ) . consensus_encode ( e) ?;
116
116
for header in cf_headers {
117
- written += header. consensus_encode ( & mut e) ?;
117
+ written += header. consensus_encode ( e) ?;
118
118
}
119
119
}
120
120
BundleStatus :: CFilters { cf_filters } => {
121
- written += 0x02u8 . consensus_encode ( & mut e) ?;
122
- written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( & mut e) ?;
121
+ written += 0x02u8 . consensus_encode ( e) ?;
122
+ written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( e) ?;
123
123
for filter in cf_filters {
124
- written += filter. consensus_encode ( & mut e) ?;
124
+ written += filter. consensus_encode ( e) ?;
125
125
}
126
126
}
127
127
BundleStatus :: Processed { cf_filters } => {
128
- written += 0x03u8 . consensus_encode ( & mut e) ?;
129
- written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( & mut e) ?;
128
+ written += 0x03u8 . consensus_encode ( e) ?;
129
+ written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( e) ?;
130
130
for filter in cf_filters {
131
- written += filter. consensus_encode ( & mut e) ?;
131
+ written += filter. consensus_encode ( e) ?;
132
132
}
133
133
}
134
134
BundleStatus :: Pruned => {
135
- written += 0x04u8 . consensus_encode ( & mut e) ?;
135
+ written += 0x04u8 . consensus_encode ( e) ?;
136
136
}
137
137
BundleStatus :: Tip { cf_filters } => {
138
- written += 0x05u8 . consensus_encode ( & mut e) ?;
139
- written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( & mut e) ?;
138
+ written += 0x05u8 . consensus_encode ( e) ?;
139
+ written += VarInt ( cf_filters. len ( ) as u64 ) . consensus_encode ( e) ?;
140
140
for filter in cf_filters {
141
- written += filter. consensus_encode ( & mut e) ?;
141
+ written += filter. consensus_encode ( e) ?;
142
142
}
143
143
}
144
144
}
@@ -148,51 +148,53 @@ impl Encodable for BundleStatus {
148
148
}
149
149
150
150
impl Decodable for BundleStatus {
151
- fn consensus_decode < D : Read > ( mut d : D ) -> Result < Self , bitcoin:: consensus:: encode:: Error > {
152
- let byte_type = u8:: consensus_decode ( & mut d) ?;
151
+ fn consensus_decode < D : Read + ?Sized > (
152
+ d : & mut D ,
153
+ ) -> Result < Self , bitcoin:: consensus:: encode:: Error > {
154
+ let byte_type = u8:: consensus_decode ( d) ?;
153
155
match byte_type {
154
156
0x00 => Ok ( BundleStatus :: Init ) ,
155
157
0x01 => {
156
- let num = VarInt :: consensus_decode ( & mut d) ?;
158
+ let num = VarInt :: consensus_decode ( d) ?;
157
159
let num = num. 0 as usize ;
158
160
159
161
let mut cf_headers = Vec :: with_capacity ( num) ;
160
162
for _ in 0 ..num {
161
- cf_headers. push ( FilterHeader :: consensus_decode ( & mut d) ?) ;
163
+ cf_headers. push ( FilterHeader :: consensus_decode ( d) ?) ;
162
164
}
163
165
164
166
Ok ( BundleStatus :: CfHeaders { cf_headers } )
165
167
}
166
168
0x02 => {
167
- let num = VarInt :: consensus_decode ( & mut d) ?;
169
+ let num = VarInt :: consensus_decode ( d) ?;
168
170
let num = num. 0 as usize ;
169
171
170
172
let mut cf_filters = Vec :: with_capacity ( num) ;
171
173
for _ in 0 ..num {
172
- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
174
+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
173
175
}
174
176
175
177
Ok ( BundleStatus :: CFilters { cf_filters } )
176
178
}
177
179
0x03 => {
178
- let num = VarInt :: consensus_decode ( & mut d) ?;
180
+ let num = VarInt :: consensus_decode ( d) ?;
179
181
let num = num. 0 as usize ;
180
182
181
183
let mut cf_filters = Vec :: with_capacity ( num) ;
182
184
for _ in 0 ..num {
183
- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
185
+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
184
186
}
185
187
186
188
Ok ( BundleStatus :: Processed { cf_filters } )
187
189
}
188
190
0x04 => Ok ( BundleStatus :: Pruned ) ,
189
191
0x05 => {
190
- let num = VarInt :: consensus_decode ( & mut d) ?;
192
+ let num = VarInt :: consensus_decode ( d) ?;
191
193
let num = num. 0 as usize ;
192
194
193
195
let mut cf_filters = Vec :: with_capacity ( num) ;
194
196
for _ in 0 ..num {
195
- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
197
+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
196
198
}
197
199
198
200
Ok ( BundleStatus :: Tip { cf_filters } )
@@ -276,7 +278,11 @@ impl ChainStore<Full> {
276
278
}
277
279
278
280
pub fn start_snapshot ( & self , from : usize ) -> Result < ChainStore < Snapshot > , CompactFiltersError > {
279
- let new_cf_name: String = thread_rng ( ) . sample_iter ( & Alphanumeric ) . take ( 16 ) . collect ( ) ;
281
+ let new_cf_name: String = thread_rng ( )
282
+ . sample_iter ( & Alphanumeric )
283
+ . map ( |byte| byte as char )
284
+ . take ( 16 )
285
+ . collect ( ) ;
280
286
let new_cf_name = format ! ( "_headers:{}" , new_cf_name) ;
281
287
282
288
let mut write_store = self . store . write ( ) . unwrap ( ) ;
@@ -647,7 +653,7 @@ impl CfStore {
647
653
& first_key,
648
654
(
649
655
BundleStatus :: Init ,
650
- filter. filter_header ( & FilterHeader :: from_hash ( Default :: default ( ) ) ) ,
656
+ filter. filter_header ( & FilterHeader :: from_hash ( Hash :: all_zeros ( ) ) ) ,
651
657
)
652
658
. serialize ( ) ,
653
659
) ?;
0 commit comments