#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(not(feature = "std"))]
extern crate alloc;
#[cfg(not(feature = "std"))]
#[allow(unused_macros)]
macro_rules! println {
($($arg:tt)*) => {};
}
#[cfg(feature = "std")]
pub mod code_generation;
#[cfg(feature = "std")]
pub mod constraint;
#[cfg(feature = "std")]
pub mod dag;
pub mod errors;
#[cfg(feature = "std")]
pub mod pairing;
#[cfg(feature = "std")]
pub mod polynomial;
#[cfg(feature = "std")]
pub mod proving_key;
#[cfg(feature = "solana")]
pub mod verification;
pub mod common;
pub mod debug;
pub use errors::ZkError;
pub use common::{G1Point, G2Point, Proof, TrustedSetup};
#[cfg(feature = "std")]
pub use constraint::{compile_constraints, CompilationResult};
#[cfg(feature = "std")]
pub use dag::{ExprId, Expression, ExpressionDAG};
#[cfg(feature = "std")]
pub use pairing::{create_proving_key, generate_proof, generate_trusted_setup, PairingProof};
#[cfg(feature = "std")]
pub use polynomial::{lagrange_interpolate, vanishing_polynomial, LagrangePolynomial};
#[cfg(feature = "std")]
pub use proving_key::{ProvingKey, VerificationKey};
#[cfg(feature = "solana")]
pub use verification::{process_check_pairing, process_check_pairing_relaxed, ComputeCoeffsFn};