use crate::base::scalar::Scalar;
use alloc::vec::Vec;
#[cfg(feature = "blitzar")]
pub use blitzar::{
compute::{init_backend, init_backend_with_config, BackendConfig},
proof::InnerProductProof,
};
use core::ops::{AddAssign, SubAssign};
mod committable_column;
pub use committable_column::CommittableColumn;
mod vec_commitment_ext;
pub use vec_commitment_ext::{NumColumnsMismatch, VecCommitmentExt};
mod column_bounds;
pub use column_bounds::{Bounds, ColumnBounds, NegativeBounds};
mod column_commitment_metadata;
pub use column_commitment_metadata::ColumnCommitmentMetadata;
mod column_commitment_metadata_map;
pub use column_commitment_metadata_map::{
ColumnCommitmentMetadataMap, ColumnCommitmentMetadataMapExt, ColumnCommitmentsMismatch,
};
mod column_commitments;
pub use column_commitments::{AppendColumnCommitmentsError, ColumnCommitments, DuplicateIdents};
mod table_commitment;
pub use table_commitment::{
AppendTableCommitmentError, MixedLengthColumns, NegativeRange, TableCommitment,
TableCommitmentArithmeticError, TableCommitmentFromColumnsError,
};
mod query_commitments;
pub use query_commitments::{QueryCommitments, QueryCommitmentsExt};
#[cfg(test)]
pub mod naive_commitment;
#[cfg(test)]
pub mod naive_evaluation_proof;
#[cfg(test)]
mod naive_commitment_test;
pub trait Commitment:
AddAssign
+ SubAssign
+ Sized
+ Default
+ Clone
+ core::ops::Neg<Output = Self>
+ Eq
+ core::ops::Sub<Output = Self>
+ core::fmt::Debug
+ core::marker::Sync
+ core::marker::Send
{
type Scalar: Scalar
+ for<'a> core::ops::Mul<&'a Self, Output = Self>
+ core::ops::Mul<Self, Output = Self>
+ serde::Serialize
+ for<'a> serde::Deserialize<'a>;
type PublicSetup<'a>;
fn compute_commitments(
committable_columns: &[CommittableColumn],
offset: usize,
setup: &Self::PublicSetup<'_>,
) -> Vec<Self>;
fn to_transcript_bytes(&self) -> Vec<u8>;
}
mod commitment_evaluation_proof;
pub use commitment_evaluation_proof::CommitmentEvaluationProof;
#[cfg(test)]
pub(crate) mod commitment_evaluation_proof_test;