WIP: Add stateful status bubbling to worktree

This commit is contained in:
Mikayla Maki 2023-06-01 16:51:34 -07:00
parent 4717ce1da3
commit 5e43dcaab8
No known key found for this signature in database
2 changed files with 110 additions and 27 deletions

View file

@ -199,6 +199,24 @@ pub enum GitFileStatus {
}
impl GitFileStatus {
pub fn merge(
this: Option<GitFileStatus>,
other: Option<GitFileStatus>,
) -> Option<GitFileStatus> {
match (this, other) {
(Some(GitFileStatus::Conflict), _) | (_, Some(GitFileStatus::Conflict)) => {
Some(GitFileStatus::Conflict)
}
(Some(GitFileStatus::Modified), _) | (_, Some(GitFileStatus::Modified)) => {
Some(GitFileStatus::Modified)
}
(Some(GitFileStatus::Added), _) | (_, Some(GitFileStatus::Added)) => {
Some(GitFileStatus::Added)
}
_ => None,
}
}
pub fn from_proto(git_status: Option<i32>) -> Option<GitFileStatus> {
git_status.and_then(|status| {
proto::GitStatus::from_i32(status).map(|status| match status {