/// 最小库用例:解析一段内嵌的 unified diff,打印人读摘要和聚合数。
/// 运行:moon run examples/basic
///
/// 外部调用方照这个包的 moon.pkg 写 import(起个别名,这里叫 @moonreview),
/// 然后走 @moonreview.parse_diff。解析可能失败,catch 里拿到的
/// BadDiff(行号, 说明) 直接告诉你错在哪一行。
///|
let sample : String = "diff --git a/src/a.txt b/src/a.txt\n" +
"index 1234567..89abcde 100644\n" +
"--- a/src/a.txt\n" +
"+++ b/src/a.txt\n" +
"@@ -1,3 +1,4 @@\n" +
" alpha\n" +
"-beta\n" +
"+BETA\n" +
" gamma\n" +
"+delta\n"
///|
fn main {
let d = @moonreview.parse_diff(sample) catch {
@moonreview.BadDiff(no, msg) => {
println("解析失败(第 \{no} 行):\{msg}")
return
}
}
println(d.format_stat())
println("")
println(
"files: \{d.file_count()}, hunks: \{d.hunk_count()}, +\{d.added_count()} -\{d.removed_count()}",
)
println("touched: \{d.touched_paths().join(", ")}")
}