use super::*;
impl Debug for FileCommitItem {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
let w = &mut f.debug_struct("Commit");
w.field("time", &self.time);
w.field("commit_id", &self.id);
w.field("lines", &self.lines);
if let Some(s) = &self.name {
w.field("name", s);
}
if let Some(s) = &self.email {
w.field("email", s);
}
w.finish()
}
}
impl From<BlameHunk<'_>> for FileCommitItem {
fn from(blame: BlameHunk) -> Self {
let sig = blame.orig_signature();
Self {
id: blame.orig_commit_id(),
lines: blame.lines_in_hunk(),
name: sig.name().map(|s| s.to_string()),
email: sig.email().map(|s| s.to_string()),
time: NaiveDateTime::from_timestamp(sig.when().seconds(), 0),
}
}
}