import std.stdio; import libxdiff : MMFile; void main() { auto a = MMFile.fromBytes(cast(ubyte[]) "hello world\n"); auto b = MMFile.fromBytes(cast(ubyte[]) "hello world!\n"); auto patch = a.computePatch(b); writeln("patch size: ", patch.size()); auto res = a.applyPatch(patch); writeln("apply success: ", res.success); writeln(res.patched.asSlice()); // печатаем результат // печатаем как есть (включая заголовок @@ и строки с '-'/'+' и '\n') write(cast(string) MMFile.fromBlocksMoved(patch).asSlice()); }