@@ -8,7 +8,8 @@ use plonky2::hash::poseidon::PoseidonHash;
88use plonky2:: plonk:: config:: Hasher ;
99
1010use super :: {
11- hash_str, AnchoredKey , Hash , NativePredicate , Params , PodId , Statement , StatementArg , ToFields , Value , F
11+ hash_str, AnchoredKey , Hash , NativePredicate , Params , PodId , Statement , StatementArg , ToFields ,
12+ Value , F ,
1213} ;
1314
1415// BEGIN Custom 1b
@@ -44,14 +45,13 @@ impl fmt::Display for HashOrWildcard {
4445impl ToFields for HashOrWildcard {
4546 fn to_fields ( & self , params : Params ) -> ( Vec < F > , usize ) {
4647 match self {
47- HashOrWildcard :: Hash ( h) => {
48- h. to_fields ( params)
49- }
48+ HashOrWildcard :: Hash ( h) => h. to_fields ( params) ,
5049 HashOrWildcard :: Wildcard ( w) => {
5150 let usizes: Vec < usize > = vec ! [ 0 , 0 , 0 , * w] ;
52- let fields: Vec < F > = usizes. iter ( ) . map (
53- |x| F :: from_canonical_u64 ( * x as u64 )
54- ) . collect ( ) ;
51+ let fields: Vec < F > = usizes
52+ . iter ( )
53+ . map ( |x| F :: from_canonical_u64 ( * x as u64 ) )
54+ . collect ( ) ;
5555 ( fields, 4 )
5656 }
5757 }
@@ -179,16 +179,14 @@ impl ToFields for StatementTmpl {
179179 if self . 1 . len ( ) > params. max_statement_args {
180180 panic ! ( "Statement template has too many arguments" ) ;
181181 }
182- let mut fields: Vec < F > = self . 0 . to_fields ( params) . 0
182+ let mut fields: Vec < F > = self
183+ . 0
184+ . to_fields ( params)
185+ . 0
183186 . into_iter ( )
184- . chain (
185- self . 1 . iter ( )
186- . flat_map ( |sta| sta. to_fields ( params) . 0 )
187- )
187+ . chain ( self . 1 . iter ( ) . flat_map ( |sta| sta. to_fields ( params) . 0 ) )
188188 . collect ( ) ;
189- fields. resize_with ( params. statement_tmpl_size ( ) ,
190- || F :: from_canonical_u64 ( 0 )
191- ) ;
189+ fields. resize_with ( params. statement_tmpl_size ( ) , || F :: from_canonical_u64 ( 0 ) ) ;
192190 ( fields, params. statement_tmpl_size ( ) )
193191 }
194192}
@@ -208,22 +206,17 @@ impl ToFields for CustomPredicate {
208206 // serialize as:
209207 // conjunction (one field element)
210208 // args_len (one field element)
211- // statements
209+ // statements
212210 // (params.max_custom_predicate_arity * params.statement_tmpl_size())
213211 // field elements
214212 if self . statements . len ( ) > params. max_custom_predicate_arity {
215213 panic ! ( "Custom predicate depends on too many statements" ) ;
216214 }
217215 let mut fields: Vec < F > = std:: iter:: once ( F :: from_bool ( self . conjunction ) )
218- . chain (
219- std:: iter:: once ( F :: from_canonical_usize ( self . args_len ) )
220- ) . chain (
221- self . statements . iter ( ) . flat_map (
222- |st| st. to_fields ( params) . 0
223- )
224- ) . collect ( ) ;
225- fields. resize_with ( params. custom_predicate_size ( ) ,
226- || F :: from_canonical_u64 ( 0 ) ) ;
216+ . chain ( std:: iter:: once ( F :: from_canonical_usize ( self . args_len ) ) )
217+ . chain ( self . statements . iter ( ) . flat_map ( |st| st. to_fields ( params) . 0 ) )
218+ . collect ( ) ;
219+ fields. resize_with ( params. custom_predicate_size ( ) , || F :: from_canonical_u64 ( 0 ) ) ;
227220 ( fields, params. custom_predicate_size ( ) )
228221 }
229222}
@@ -265,12 +258,15 @@ impl ToFields for CustomPredicateBatch {
265258 if self . predicates . len ( ) > params. max_custom_batch_size {
266259 panic ! ( "Predicate batch exceeds maximum size" ) ;
267260 }
268- let mut fields: Vec < F > = self . predicates . iter ( ) . flat_map (
269- |p| p. to_fields ( params) . 0
270- ) . collect ( ) ;
271- fields. resize_with ( params. custom_predicate_batch_size_field_elts ( ) ,
272- || F :: from_canonical_u64 ( 0 ) ) ;
273-
261+ let mut fields: Vec < F > = self
262+ . predicates
263+ . iter ( )
264+ . flat_map ( |p| p. to_fields ( params) . 0 )
265+ . collect ( ) ;
266+ fields. resize_with ( params. custom_predicate_batch_size_field_elts ( ) , || {
267+ F :: from_canonical_u64 ( 0 )
268+ } ) ;
269+
274270 ( fields, params. custom_predicate_batch_size_field_elts ( ) )
275271 }
276272}
@@ -315,7 +311,7 @@ impl ToFields for Predicate {
315311 fields = std:: iter:: once ( F :: from_canonical_u64 ( 1 ) )
316312 . chain ( p. to_fields ( params) . 0 . into_iter ( ) )
317313 . collect ( ) ;
318- } ,
314+ }
319315 Self :: BatchSelf ( i) => {
320316 fields = std:: iter:: once ( F :: from_canonical_u64 ( 2 ) )
321317 . chain ( std:: iter:: once ( F :: from_canonical_usize ( * i) ) )
@@ -328,9 +324,8 @@ impl ToFields for Predicate {
328324 . collect ( ) ;
329325 }
330326 }
331- fields. resize_with ( params. predicate_size ( ) ,
332- || F :: from_canonical_u64 ( 0 ) ) ;
333- ( fields, params. predicate_size ( ) )
327+ fields. resize_with ( params. predicate_size ( ) , || F :: from_canonical_u64 ( 0 ) ) ;
328+ ( fields, params. predicate_size ( ) )
334329 }
335330}
336331
0 commit comments