Skip to main content

parse_patch

Function parse_patch 

Source
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));