1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! 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:
//! ```rust
//! 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:
//! ```rust
//! 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:
//! ```rust
//! 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:
//! ```rust
//! 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:
//! ```rust
//! 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);
//! ```
pub use Levenshtein;
pub use DamerauLevenshtein;
pub use Hamming;
pub use Jaro;
pub use JaroWinkler;