@@ -103,42 +103,42 @@ where
103103}
104104
105105impl 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 > {
107107 let mut written = 0 ;
108108
109109 match self {
110110 BundleStatus :: Init => {
111- written += 0x00u8 . consensus_encode ( & mut e) ?;
111+ written += 0x00u8 . consensus_encode ( e) ?;
112112 }
113113 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) ?;
116116 for header in cf_headers {
117- written += header. consensus_encode ( & mut e) ?;
117+ written += header. consensus_encode ( e) ?;
118118 }
119119 }
120120 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) ?;
123123 for filter in cf_filters {
124- written += filter. consensus_encode ( & mut e) ?;
124+ written += filter. consensus_encode ( e) ?;
125125 }
126126 }
127127 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) ?;
130130 for filter in cf_filters {
131- written += filter. consensus_encode ( & mut e) ?;
131+ written += filter. consensus_encode ( e) ?;
132132 }
133133 }
134134 BundleStatus :: Pruned => {
135- written += 0x04u8 . consensus_encode ( & mut e) ?;
135+ written += 0x04u8 . consensus_encode ( e) ?;
136136 }
137137 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) ?;
140140 for filter in cf_filters {
141- written += filter. consensus_encode ( & mut e) ?;
141+ written += filter. consensus_encode ( e) ?;
142142 }
143143 }
144144 }
@@ -148,51 +148,53 @@ impl Encodable for BundleStatus {
148148}
149149
150150impl 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) ?;
153155 match byte_type {
154156 0x00 => Ok ( BundleStatus :: Init ) ,
155157 0x01 => {
156- let num = VarInt :: consensus_decode ( & mut d) ?;
158+ let num = VarInt :: consensus_decode ( d) ?;
157159 let num = num. 0 as usize ;
158160
159161 let mut cf_headers = Vec :: with_capacity ( num) ;
160162 for _ in 0 ..num {
161- cf_headers. push ( FilterHeader :: consensus_decode ( & mut d) ?) ;
163+ cf_headers. push ( FilterHeader :: consensus_decode ( d) ?) ;
162164 }
163165
164166 Ok ( BundleStatus :: CfHeaders { cf_headers } )
165167 }
166168 0x02 => {
167- let num = VarInt :: consensus_decode ( & mut d) ?;
169+ let num = VarInt :: consensus_decode ( d) ?;
168170 let num = num. 0 as usize ;
169171
170172 let mut cf_filters = Vec :: with_capacity ( num) ;
171173 for _ in 0 ..num {
172- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
174+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
173175 }
174176
175177 Ok ( BundleStatus :: CFilters { cf_filters } )
176178 }
177179 0x03 => {
178- let num = VarInt :: consensus_decode ( & mut d) ?;
180+ let num = VarInt :: consensus_decode ( d) ?;
179181 let num = num. 0 as usize ;
180182
181183 let mut cf_filters = Vec :: with_capacity ( num) ;
182184 for _ in 0 ..num {
183- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
185+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
184186 }
185187
186188 Ok ( BundleStatus :: Processed { cf_filters } )
187189 }
188190 0x04 => Ok ( BundleStatus :: Pruned ) ,
189191 0x05 => {
190- let num = VarInt :: consensus_decode ( & mut d) ?;
192+ let num = VarInt :: consensus_decode ( d) ?;
191193 let num = num. 0 as usize ;
192194
193195 let mut cf_filters = Vec :: with_capacity ( num) ;
194196 for _ in 0 ..num {
195- cf_filters. push ( Vec :: < u8 > :: consensus_decode ( & mut d) ?) ;
197+ cf_filters. push ( Vec :: < u8 > :: consensus_decode ( d) ?) ;
196198 }
197199
198200 Ok ( BundleStatus :: Tip { cf_filters } )
@@ -276,7 +278,11 @@ impl ChainStore<Full> {
276278 }
277279
278280 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 ( ) ;
280286 let new_cf_name = format ! ( "_headers:{}" , new_cf_name) ;
281287
282288 let mut write_store = self . store . write ( ) . unwrap ( ) ;
@@ -647,7 +653,7 @@ impl CfStore {
647653 & first_key,
648654 (
649655 BundleStatus :: Init ,
650- filter. filter_header ( & FilterHeader :: from_hash ( Default :: default ( ) ) ) ,
656+ filter. filter_header ( & FilterHeader :: from_hash ( Hash :: all_zeros ( ) ) ) ,
651657 )
652658 . serialize ( ) ,
653659 ) ?;
0 commit comments