1use objects::{
3 object::{ChangeId, Tree},
4 store::ObjectStore,
5};
6use repo::Repository;
7
8use crate::cli::commands::{bench_detect_renames, bench_find_merge_base, bench_three_way_merge};
9
10pub fn find_merge_base_for_bench(
11 repo: &Repository,
12 state_a: &ChangeId,
13 state_b: &ChangeId,
14) -> anyhow::Result<Option<ChangeId>> {
15 bench_find_merge_base(repo, state_a, state_b)
16}
17
18pub fn three_way_merge_for_bench(
19 repo: &Repository,
20 base_tree: &Tree,
21 our_tree: &Tree,
22 their_tree: &Tree,
23) -> anyhow::Result<(Tree, usize, usize, usize)> {
24 bench_three_way_merge(repo, base_tree, our_tree, their_tree)
25}
26
27pub fn detect_renames_for_bench(
28 store: &impl ObjectStore,
29 base_tree: &Tree,
30 branch_tree: &Tree,
31) -> anyhow::Result<(usize, usize, usize)> {
32 let (rename_count, stats) = bench_detect_renames(store, base_tree, branch_tree)?;
33 Ok((
34 rename_count,
35 stats.metadata_candidate_pairs,
36 stats.scored_pairs,
37 ))
38}