snark_verifier::pcs

Trait AccumulationDecider

Source
pub trait AccumulationDecider<C, L>: AccumulationScheme<C, L>
where C: CurveAffine, L: Loader<C>,
{ type DecidingKey: Clone + Debug; // Required methods fn decide( dk: &Self::DecidingKey, accumulator: Self::Accumulator, ) -> Result<(), Error>; fn decide_all( dk: &Self::DecidingKey, accumulators: Vec<Self::Accumulator>, ) -> Result<(), Error>; }
Expand description

Accumulation scheme decider. When accumulation is going to end, the decider will perform the check if the final accumulator is valid or not, where the check is usually much more expensive than accumulation verification.

Required Associated Types§

Source

type DecidingKey: Clone + Debug

Deciding key. The key for decider for perform the final accumulator check.

Required Methods§

Source

fn decide( dk: &Self::DecidingKey, accumulator: Self::Accumulator, ) -> Result<(), Error>

Decide if a AccumulationScheme::Accumulator is valid.

Source

fn decide_all( dk: &Self::DecidingKey, accumulators: Vec<Self::Accumulator>, ) -> Result<(), Error>

Decide if all AccumulationScheme::Accumulators are valid.

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.

Implementors§

Source§

impl<C, MOS> AccumulationDecider<C, NativeLoader> for IpaAs<C, MOS>
where C: CurveAffine, MOS: Clone + Debug,

Source§

impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, NativeLoader> for KzgAs<M, MOS>
where M: MultiMillerLoop, M::G1Affine: CurveAffine<ScalarExt = M::Fr, CurveExt = M::G1>, MOS: Clone + Debug,

Source§

impl<M, MOS> AccumulationDecider<<M as Engine>::G1Affine, Rc<EvmLoader>> for KzgAs<M, MOS>
where M: MultiMillerLoop, M::G1Affine: CurveAffine<ScalarExt = M::Fr, CurveExt = M::G1>, M::G2Affine: CurveAffine<ScalarExt = M::Fr, CurveExt = M::G2>, M::Fr: PrimeField<Repr = [u8; 32]>, MOS: Clone + Debug,