1#![deny(
10 warnings,
11 unused,
12 future_incompatible,
13 nonstandard_style,
14 rust_2018_idioms,
15 missing_docs
16)]
17#![allow(non_snake_case)]
18#![allow(clippy::upper_case_acronyms)]
19#![allow(clippy::type_complexity)]
20#![allow(clippy::too_many_arguments)]
21#![deny(unsafe_code)]
22
23mod digest;
25mod math;
26mod nifs;
27mod r1cs;
28mod zk;
29
30#[macro_use]
31mod macros;
32
33pub mod bellpepper;
35pub mod errors;
36pub mod provider;
37pub mod traits;
38
39mod big_num;
41mod polys;
42mod sumcheck;
43
44pub(crate) mod spartan_relaxed; pub mod vega_mc_zkp; pub mod vega_sc; pub mod vega_sc_zkp; macro_rules! start_span {
52 ($name:expr $(, $($fmt:tt)+)?) => {{
53 let span = tracing::info_span!($name $(, $($fmt)+)?);
54 let span_clone = span.clone(); let _guard = span_clone.enter();
56 (span, std::time::Instant::now())
57 }};
58}
59pub(crate) use start_span;
60
61pub(crate) const DEFAULT_COMMITMENT_WIDTH: usize = 2048;
63
64use traits::{Engine, pcs::PCSEngineTrait};
65type CommitmentKey<E> = <<E as traits::Engine>::PCS as PCSEngineTrait<E>>::CommitmentKey;
66type VerifierKey<E> = <<E as traits::Engine>::PCS as PCSEngineTrait<E>>::VerifierKey;
67type Commitment<E> = <<E as Engine>::PCS as PCSEngineTrait<E>>::Commitment;
68type PCS<E> = <E as Engine>::PCS;
69type Blind<E> = <<E as Engine>::PCS as PCSEngineTrait<E>>::Blind;