[][src]Module eddie::slice

Distance/similarity metric implementations for generic slices &[T].

Implementations in this module are significantly faster than those from eddie::str, but will produce incorrect results for UTF-8 and other variable width character encodings.

Basic Usage

Levenshtein:

use eddie::slice::Levenshtein;
let lev = Levenshtein::new();
let dist = lev.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]);
assert_eq!(dist, 2);

Damerau-Levenshtein:

use eddie::slice::DamerauLevenshtein;
let damlev = DamerauLevenshtein::new();
let dist = damlev.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]);
assert_eq!(dist, 1);

Hamming:

use eddie::slice::Hamming;
let hamming = Hamming::new();
let dist = hamming.distance(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]);
assert_eq!(dist, Some(2));

Jaro:

use eddie::slice::Jaro;
let jaro = Jaro::new();
let sim = jaro.similarity(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]);
dbg!(sim);
assert!((sim - 0.93).abs() < 0.01);

Jaro-Winkler:

use eddie::slice::JaroWinkler;
let jarwin = JaroWinkler::new();
let sim = jarwin.similarity(&[1, 2, 3, 4, 5], &[1, 3, 2, 4, 5]);
dbg!(sim);
assert!((sim - 0.93).abs() < 0.01);

Structs

DamerauLevenshtein

Damerau-Levenshtein distance.

Hamming

Hamming distance.

Jaro

Jaro similarity.

JaroWinkler

Jaro-Winkler similarity.

Levenshtein

Levenshtein distance.