Skip to main content

cli/
bench.rs

1// SPDX-License-Identifier: Apache-2.0
2use 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}