InnerTraceGen

Trait InnerTraceGen 

Source
pub trait InnerTraceGen<PB: ProverBackend, DC: Clone + Send + Sync> {
    // Required methods
    fn new(deferral_enabled: bool) -> Self;
    fn generate_pre_verifier_subcircuit_ctxs(
        &self,
        proofs: &[Proof<BabyBearPoseidon2Config>],
        proofs_type: ProofsType,
        absent_trace_pvs: Option<(DeferralPvs<F>, bool)>,
        child_is_app: bool,
        child_vk_commit: VkCommit<F>,
        device_ctx: &DC,
    ) -> SubCircuitTraceData<PB>;
    fn generate_post_verifier_subcircuit_ctxs(
        &self,
        proofs: &[Proof<BabyBearPoseidon2Config>],
        proofs_type: ProofsType,
        child_is_app: bool,
        device_ctx: &DC,
    ) -> Vec<AirProvingContext<PB>>;
}

Required Methods§

Source

fn new(deferral_enabled: bool) -> Self

Source

fn generate_pre_verifier_subcircuit_ctxs( &self, proofs: &[Proof<BabyBearPoseidon2Config>], proofs_type: ProofsType, absent_trace_pvs: Option<(DeferralPvs<F>, bool)>, child_is_app: bool, child_vk_commit: VkCommit<F>, device_ctx: &DC, ) -> SubCircuitTraceData<PB>

Source

fn generate_post_verifier_subcircuit_ctxs( &self, proofs: &[Proof<BabyBearPoseidon2Config>], proofs_type: ProofsType, child_is_app: bool, device_ctx: &DC, ) -> Vec<AirProvingContext<PB>>

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 InnerTraceGen<CpuBackend<BabyBearPoseidon2Config>, ()> for InnerTraceGenImpl

Source§

impl InnerTraceGen<GenericGpuBackend<BabyBearPoseidon2HashScheme>, GpuDeviceCtx> for InnerTraceGenImpl

Available on crate feature cuda only.