fn wvg_runner<ML: WitnessVectorMetadataLoader>(
        &self,
        count: usize,
        metadata_loader: ML,
    ) -> JobRunner<
        WitnessVectorGeneratorExecutor,
        WitnessVectorGeneratorJobPicker<ML>,
        WitnessVectorGeneratorJobSaver,
    > {
        let executor = WitnessVectorGeneratorExecutor;
        let job_picker = WitnessVectorGeneratorJobPicker::new(
            self.connection_pool.clone(),
            self.object_store.clone(),
            self.finalization_hints_cache.clone(),
            metadata_loader,
        );
        let job_saver =
            WitnessVectorGeneratorJobSaver::new(self.connection_pool.clone(), self.sender.clone());
        let backoff = Backoff::default();

        JobRunner::new(
            executor,
            job_picker,
            job_saver,
            count,
            Some(BackoffAndCancellable::new(
                backoff,
                self.cancellation_token.clone(),
            )),
        )
    }
Creates a Witness Vector Generator job runner with specified MetadataLoader.
The MetadataLoader makes the difference between heavy & light WVG runner.
prover/crates/lib/circuit_prover_service/src/job_runner.rs