#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct RepoState {
pub branch: Option<String>,
pub modified: Vec<String>,
pub stopped: Option<Stopped>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Operation {
Merge,
Rebase,
}
impl Operation {
#[must_use]
pub const fn other_head(self) -> &'static str {
match self {
Self::Merge => "MERGE_HEAD",
Self::Rebase => "REBASE_HEAD",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Stopped {
pub operation: Operation,
pub branch: Option<String>,
pub head_lock: Option<Vec<u8>>,
pub other_lock: Option<Vec<u8>>,
pub unmerged: Vec<String>,
}