[−][src]Function hdiff::diff
pub fn diff<T: Eq + Hash>(old: &[T], new: &[T]) -> Difference
Finds difference between two slices of objects using Paul Heckel's algorithm.
Examples
Example from the "A technique for isolating differences between files".
use hdiff::*; let old = vec!["MUCH", "WRITING", "IS", "LIKE", "SNOW", ",", "A", "MASS","OF", "LONG", "WORDS", "AND", "PHRASES", "FALLS", "UPON", "THE", "RELEVANT", "FACTS", "COVERING", "UP", "THE", "DETAILS", "."]; let new = vec!["A", "MASS", "OF", "LATIN", "WORDS", "FALLS", "UPON", "THE", "RELEVANT", "FACTS", "LIKE", "SOFT", "SNOW", ",", "COVERING", "UP", "THE", "DETAILS", "."]; let answer = vec![Delete(0), Delete(1), Delete(2), Delete(9), Delete(11), Delete(12), Move(6, 0), Move(7, 1), Move(8, 2), Create(3), Move(10, 4), Move(13, 5), Move(14, 6), Move(15, 7), Move(16, 8), Move(17, 9), Move(3, 10), Create(11), Move(4, 12), Move(5, 13)]; assert_eq!(answer, diff(&old, &new));