pub trait Params<'params, C: CurveAffine>: Sized + Clone {
type MSM: MSM<C> + 'params;
// Required methods
fn k(&self) -> u32;
fn n(&self) -> u64;
fn downsize(&mut self, k: u32);
fn empty_msm(&'params self) -> Self::MSM;
fn commit_lagrange(
&self,
poly: &Polynomial<C::ScalarExt, LagrangeCoeff>,
r: Blind<C::ScalarExt>,
) -> C::CurveExt;
fn write<W: Write>(&self, writer: &mut W) -> Result<()>;
fn read<R: Read>(reader: &mut R) -> Result<Self>;
}
Expand description
Parameters for circuit sysnthesis and prover parameters.
Required Associated Types§
Required Methods§
Sourcefn empty_msm(&'params self) -> Self::MSM
fn empty_msm(&'params self) -> Self::MSM
Generates an empty multiscalar multiplication struct using the appropriate params.
Sourcefn commit_lagrange(
&self,
poly: &Polynomial<C::ScalarExt, LagrangeCoeff>,
r: Blind<C::ScalarExt>,
) -> C::CurveExt
fn commit_lagrange( &self, poly: &Polynomial<C::ScalarExt, LagrangeCoeff>, r: Blind<C::ScalarExt>, ) -> C::CurveExt
This commits to a polynomial using its evaluations over the $2^k$ size
evaluation domain. The commitment will be blinded by the blinding factor
r
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.