1
1
macro_rules! make_uint {
2
- ( $name: ident, $size: expr, $native: ident, $mod_name: ident, $native_doc_name: expr) => {
3
- #[ doc = "This module contains a `UInt" ]
2
+ ( $name: ident, $size: expr, $native: ident, $mod_name: ident, $r1cs_doc_name: expr, $native_doc_name: expr, $num_bits_doc: expr) => {
3
+ #[ doc = "This module contains the " ]
4
+ #[ doc = $r1cs_doc_name]
5
+ #[ doc = "type, which is the R1CS equivalent of the " ]
4
6
#[ doc = $native_doc_name]
5
- #[ doc = "`, a R1CS equivalent of the `u" ]
6
- #[ doc = $native_doc_name]
7
- #[ doc = "`type." ]
7
+ #[ doc = " type." ]
8
8
pub mod $mod_name {
9
9
use ark_ff:: { Field , FpParameters , One , PrimeField , Zero } ;
10
10
use core:: borrow:: Borrow ;
@@ -23,13 +23,13 @@ macro_rules! make_uint {
23
23
} ;
24
24
25
25
#[ doc = "This struct represent an unsigned" ]
26
+ #[ doc = $num_bits_doc]
27
+ #[ doc = " bit integer as a sequence of " ]
28
+ #[ doc = $num_bits_doc]
29
+ #[ doc = " `Boolean`s. \n " ]
30
+ #[ doc = "This is the R1CS equivalent of the native " ]
26
31
#[ doc = $native_doc_name]
27
- #[ doc = "-bit integer as a sequence of " ]
28
- #[ doc = $native_doc_name]
29
- #[ doc = " `Boolean`s\n " ]
30
- #[ doc = "This is the R1CS equivalent of the native `u" ]
31
- #[ doc = $native_doc_name]
32
- #[ doc = "` unsigned integer type." ]
32
+ #[ doc = " unsigned integer type." ]
33
33
#[ derive( Clone , Debug ) ]
34
34
pub struct $name<F : Field > {
35
35
// Least significant bit first
@@ -59,11 +59,11 @@ macro_rules! make_uint {
59
59
}
60
60
61
61
impl <F : Field > $name<F > {
62
- #[ doc = "Construct a constant `UInt" ]
63
- #[ doc = $native_doc_name ]
64
- #[ doc = "` from the native `u" ]
65
- #[ doc = $native_doc_name]
66
- #[ doc = "` type." ]
62
+ #[ doc = "Construct a constant " ]
63
+ #[ doc = $r1cs_doc_name ]
64
+ #[ doc = " from the native " ]
65
+ #[ doc = $native_doc_name]
66
+ #[ doc = " type." ]
67
67
pub fn constant( value: $native) -> Self {
68
68
let mut bits = [ Boolean :: FALSE ; $size] ;
69
69
@@ -88,9 +88,9 @@ macro_rules! make_uint {
88
88
///
89
89
/// # Panics
90
90
///
91
- /// This method panics if `bits.len() != u
92
- #[ doc( $native_doc_name ) ]
93
- #[ doc( "`." ) ]
91
+ # [ doc = " This method panics if `bits.len() != " ]
92
+ #[ doc = $num_bits_doc ]
93
+ #[ doc = "`." ]
94
94
pub fn from_bits_le( bits: & [ Boolean <F >] ) -> Self {
95
95
assert_eq!( bits. len( ) , $size) ;
96
96
@@ -337,21 +337,21 @@ macro_rules! make_uint {
337
337
false_value: & Self ,
338
338
) -> Result <Self , SynthesisError > {
339
339
let selected_bits = true_value
340
- . bits
341
- . iter( )
342
- . zip( & false_value. bits)
340
+ . bits
341
+ . iter( )
342
+ . zip( & false_value. bits)
343
343
. map( |( t, f) | cond. select( t, f) ) ;
344
344
let mut bits = [ Boolean :: FALSE ; $size] ;
345
345
for ( result, new) in bits. iter_mut( ) . zip( selected_bits) {
346
346
* result = new?;
347
347
}
348
348
349
349
let value = cond. value( ) . ok( ) . and_then( |cond| {
350
- if cond {
351
- true_value. value( ) . ok( )
352
- } else {
353
- false_value. value( ) . ok( )
354
- }
350
+ if cond {
351
+ true_value. value( ) . ok( )
352
+ } else {
353
+ false_value. value( ) . ok( )
354
+ }
355
355
} ) ;
356
356
Ok ( Self { bits, value } )
357
357
}
0 commit comments