use crate::ui::view::log::LogLayout;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum LogFocus {
#[default]
History,
Files,
Diff,
}
impl LogFocus {
pub fn is_history(self) -> bool {
self == Self::History
}
pub fn is_files(self) -> bool {
self == Self::Files
}
pub fn is_diff(self) -> bool {
self == Self::Diff
}
}
impl From<LogLayout> for LogFocus {
fn from(layout: LogLayout) -> Self {
[
(LogLayout::HISTORY, Self::History),
(LogLayout::HISTORY_FILES, Self::History),
(LogLayout::FILES_DIFF, Self::Files),
(LogLayout::DIFF, Self::Diff),
]
.iter()
.find_map(|(ly, v)| (*ly == layout).then_some(*v))
.expect("unreachable")
}
}