git_shell/git/
status.rs

1// License: see LICENSE file at root directory of main branch
2
3//! # Status
4
5use core::str::FromStr;
6
7use std::io::Error;
8
9/// # Status
10#[derive(Debug, Eq, PartialEq, Hash)]
11pub enum Status {
12
13    /// # Untracked
14    Untracked,
15
16    /// # New
17    New,
18
19    /// # Modified
20    Modified,
21
22    /// # Deleted
23    Deleted,
24
25    /// # Unknown
26    Unknown,
27
28}
29
30impl FromStr for Status {
31
32    type Err = Error;
33
34    fn from_str(s: &str) -> Result<Self, Self::Err> {
35        match s {
36            concat!('?', '?') => Ok(Status::Untracked),
37            concat!('A') => Ok(Status::New),
38            concat!('M') => Ok(Status::Modified),
39            concat!('D') => Ok(Status::Deleted),
40            _ => Ok(Status::Unknown),
41        }
42    }
43
44}