pub async fn run_with_source( solution: Solution, index: SolutionDataIndex, predicate: Predicate, constraint: usize, state: HashMap<ContentAddress, BTreeMap<Key, Value>>, source: Source, ) -> Result<()>