pub fn parse_patch(patch: &str) -> Vec<FileDiff>Expand description
Parse a git show --patch / git diff unified patch.
ยงExamples
use solid_pod_rs_forge::diff::{parse_patch, LineKind};
let patch = "diff --git a/f.txt b/f.txt\n--- a/f.txt\n+++ b/f.txt\n@@ -1,2 +1,2 @@\n keep\n-old\n+new\n";
let files = parse_patch(patch);
assert_eq!(files[0].name.as_deref(), Some("f.txt"));
assert_eq!((files[0].adds, files[0].dels), (1, 1));
let lines = &files[0].hunks[0].lines;
assert_eq!(lines[2].kind, LineKind::Add);
assert_eq!(lines[2].new_line, Some(2));