use crate::result::RunResult;
use std::fmt;
use std::path::PathBuf;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ChangeKind {
Added,
Modified,
Deleted,
}
impl fmt::Display for ChangeKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ChangeKind::Added => write!(f, "A"),
ChangeKind::Modified => write!(f, "M"),
ChangeKind::Deleted => write!(f, "D"),
}
}
}
#[derive(Debug, Clone)]
pub struct Change {
pub kind: ChangeKind,
pub path: PathBuf,
}
impl fmt::Display for Change {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{} {}", self.kind, self.path.display())
}
}
#[derive(Debug)]
pub struct DryRunResult {
pub run_result: RunResult,
pub changes: Vec<Change>,
}