#![deny(
warnings,
unused,
future_incompatible,
nonstandard_style,
rust_2018_idioms,
missing_docs
)]
#![allow(non_snake_case)]
#![allow(clippy::upper_case_acronyms)]
#![allow(clippy::type_complexity)]
#![allow(clippy::too_many_arguments)]
#![forbid(unsafe_code)]
mod digest;
mod math;
mod nifs;
mod r1cs;
mod zk;
#[macro_use]
mod macros;
pub mod bellpepper;
pub mod errors;
pub mod provider;
pub mod traits;
mod big_num;
mod polys;
mod sumcheck;
pub mod neutronnova_zk; pub mod spartan; pub mod spartan_zk;
macro_rules! start_span {
($name:expr $(, $($fmt:tt)+)?) => {{
let span = tracing::info_span!($name $(, $($fmt)+)?);
let span_clone = span.clone(); let _guard = span_clone.enter();
(span, std::time::Instant::now())
}};
}
pub(crate) use start_span;
pub(crate) const MULTIROUND_COMMITMENT_WIDTH: usize = 4;
pub(crate) const DEFAULT_COMMITMENT_WIDTH: usize = 1024;
use traits::{Engine, pcs::PCSEngineTrait};
type CommitmentKey<E> = <<E as traits::Engine>::PCS as PCSEngineTrait<E>>::CommitmentKey;
type VerifierKey<E> = <<E as traits::Engine>::PCS as PCSEngineTrait<E>>::VerifierKey;
type Commitment<E> = <<E as Engine>::PCS as PCSEngineTrait<E>>::Commitment;
type PCS<E> = <E as Engine>::PCS;
type Blind<E> = <<E as Engine>::PCS as PCSEngineTrait<E>>::Blind;