use crate::git::GitStatus; use crate::theme::git::GitThemeSymbols; pub struct GitTheme { symbols: GitThemeSymbols, } impl GitTheme { pub fn new() -> GitTheme { let git_symbols = GitThemeSymbols::default(); Self { symbols: git_symbols, } } pub fn get_symbol(&self, status: &GitStatus) -> String { let symbol = match status { GitStatus::Default => &self.symbols.default, GitStatus::Unmodified => &self.symbols.unmodified, GitStatus::Ignored => &self.symbols.ignored, GitStatus::NewInIndex => &self.symbols.new_in_index, GitStatus::NewInWorkdir => &self.symbols.new_in_workdir, GitStatus::Typechange => &self.symbols.typechange, GitStatus::Deleted => &self.symbols.deleted, GitStatus::Renamed => &self.symbols.renamed, GitStatus::Modified => &self.symbols.modified, GitStatus::Conflicted => &self.symbols.conflicted, }; symbol.to_string() } }