This crate provides the [Change] enum as an abstraction for [diff::Result], [lcs_diff::DiffResult], and [wu_diff::DiffResult]; the [diff_changes()], [diff_diff()], [lcs_changes()], [lcs_diff()], [wu_changes()], and [wu_diff()] functions to calculate or process diffs between a and b slices via LCS (Longest Common Subsequence) or Wu diff algorithms into a [Vec<Change>], and the [patch()] function to reproduce b from the a slice and [Vec<Change>].

```Rust use slicediffpatch::*;

let a = vec!["one", "TWO", "three", "four"]; let b = vec!["zero", "one", "two", "four"];

let diff = diffdiff(&a, &b); asserteq!( diff, vec![ Change::Insert((0, "zero")), Change::Remove(2), Change::Update((2, "two")), ], ); assert_eq!(patch(&a, &diff), b);

let lcs = lcsdiff(&a, &b); asserteq!( lcs, vec![ Change::Insert((0, "zero")), Change::Update((2, "two")), Change::Remove(3), ], ); assert_eq!(patch(&a, &lcs), b);

let wu = wudiff(&a, &b); asserteq!( wu, vec![ Change::Insert((0, "zero")), Change::Remove(2), Change::Update((2, "two")), ], ); assert_eq!(patch(&a, &wu), b); ```

See also:

Changelog: