pub(crate) mod apply;
pub(crate) mod block;
pub(crate) mod format;
pub(crate) mod input;
pub(crate) mod model;
pub(crate) mod normalize;
pub(crate) mod parser;
pub(crate) mod recovery;
pub(crate) mod snapshots;
pub(crate) mod tokenizer;
pub(crate) mod tool;
pub(crate) use snapshots::HashlineSnapshotStore;
#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) enum HashEditOperationSummary {
Update { path: String },
Move { path: String, destination: String },
Delete { path: String },
}
pub(crate) fn operation_summaries(input: &str) -> Vec<HashEditOperationSummary> {
input::parse_input(input, input::SplitOptions::default())
.unwrap_or_default()
.into_iter()
.map(|section| match section.file_op {
Some(model::FileOp::Move { dest }) => HashEditOperationSummary::Move {
path: section.path,
destination: dest,
},
Some(model::FileOp::Remove) => HashEditOperationSummary::Delete { path: section.path },
None => HashEditOperationSummary::Update { path: section.path },
})
.collect()
}