// Audit report construction and online validation orchestration. fn run_online_validation_with_fetchers( store: Arc, policy: &Policy, args: &RunConfig, http: &H, rsync: &R, validation_time: time::OffsetDateTime, config: &TreeRunConfig, collect_current_repo_objects: bool, timing: Option<&TimingHandle>, ) -> Result where H: crate::repository::sync::rrdp::Fetcher + Clone + 'static, R: crate::repository::fetch::rsync::RsyncFetcher + Clone + 'static, { // One scheduler entry preserves explicit TAL identities for one or many roots. if let Some(t) = timing { run_tree_from_multiple_tals_parallel_phase2_audit_with_timing( store, policy, args.tal_inputs.clone(), http, rsync, validation_time, config, args.parallel_phase1_config.clone(), args.parallel_phase2_config.clone(), collect_current_repo_objects, t, ) } else { run_tree_from_multiple_tals_parallel_phase2_audit( store, policy, args.tal_inputs.clone(), http, rsync, validation_time, config, args.parallel_phase1_config.clone(), args.parallel_phase2_config.clone(), collect_current_repo_objects, ) } .map_err(|error| error.to_string()) }