Skip to content
Clone
7f45a05
29 lines 938 B Rust
//! conflict Operation trait for the conflict module (three-way merge checks based on gix).
use crate::conflict::types::{ConflictDetail, MergeStatus};
/// Operation trait for the conflict module.
pub trait ConflictOps {
/// Check whether a merge is feasible.
fn conflict_check(&self, base: &str, head: &str) -> Result<MergeStatus, crate::Error>;
/// List of conflicted files.
fn conflict_conflicted_files(
&self,
base: &str,
head: &str,
) -> Result<Vec<String>, crate::Error>;
/// Single-file conflict details.
fn conflict_detail(
&self,
base: &str,
head: &str,
path: &str,
) -> Result<ConflictDetail, crate::Error>;
/// Three-way conflict check using an explicit merge-base ancestor.
fn conflict_check_threeway(
&self,
ours: &str,
theirs: &str,
ancestor: &str,
) -> Result<MergeStatus, crate::Error>;
}