use crate::{BusDeviceMetrics, Instance, InstanceCtx, Plan, Planner};
use proofman_common::ProofCtx;
use proofman_fields::PrimeField64;
pub trait ComponentPlanBuilder<F: PrimeField64> {
type Counter: BusDeviceMetrics + 'static;
fn counter(is_asm_emulator: bool) -> Self::Counter;
fn planner(is_asm_emulator: bool) -> Box<dyn Planner>;
}
pub trait ComponentBuilder<F: PrimeField64>: Send + Sync {
#[allow(unused_variables)]
fn configure_instances(&self, pctx: &ProofCtx<F>, plannings: &[Plan]) {}
fn build_instance(&self, ictx: InstanceCtx) -> Box<dyn Instance<F>>;
}