use std::path::PathBuf;
use std::time::Duration;
use crate::error::Error;
use crate::profiler::Entry;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum StopReason {
Fatal,
AbortOnError,
Cancelled,
Undo,
}
#[derive(Debug, Default)]
#[non_exhaustive]
pub struct OperationOutcome {
pub succeeded: Vec<Entry>,
pub failed: Vec<(Entry, Error)>,
pub cleanup_failed: Vec<(Entry, Error)>,
pub stopped_early: Option<StopReason>,
pub directories_failed: Vec<(PathBuf, Error)>,
pub duration: Duration,
}