1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// TODO: Copy some examples etc. here when the API is more stable.

//! This is a rust library for building R1CS gadgets over prime fields, which are useful in SNARKs
//! and other argument systems.
//!
//! See the [readme](https://github.com/mir-protocol/r1cs) for more information and examples.

pub use num;

pub use constraint::*;
pub use davies_meyer::*;
pub use expression::*;
pub use field::*;
pub use gadget::*;
pub use gadget_builder::*;
pub use gadget_traits::*;
pub use merkle_damgard::*;
pub use merkle_trees::*;
pub use mimc::*;
pub use sponge::*;
pub use wire::*;
pub use wire_values::*;
pub use witness_generator::*;

#[macro_use]
mod wire_values;

mod bimap_util;
mod binary_arithmetic;
mod bitwise_operations;
mod boolean_algebra;
mod comparisons;
mod constraint;
mod davies_meyer;
mod expression;
mod field;
mod field_arithmetic;
mod gadget;
mod gadget_builder;
mod gadget_traits;
mod merkle_damgard;
mod merkle_trees;
mod mimc;
mod permutations;
mod random_access;
mod sorting;
mod splitting;
mod sponge;
mod wire;
mod witness_generator;

#[cfg(test)]
mod test_util;