summaryrefslogtreecommitdiff
path: root/rust/examples/dwarf/dwarf_export/src/edit_distance.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/examples/dwarf/dwarf_export/src/edit_distance.rs')
-rw-r--r--rust/examples/dwarf/dwarf_export/src/edit_distance.rs44
1 files changed, 0 insertions, 44 deletions
diff --git a/rust/examples/dwarf/dwarf_export/src/edit_distance.rs b/rust/examples/dwarf/dwarf_export/src/edit_distance.rs
deleted file mode 100644
index 9f135451..00000000
--- a/rust/examples/dwarf/dwarf_export/src/edit_distance.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-pub(crate) fn distance(a: &str, b: &str) -> usize {
- if a == b {
- return 0;
- }
- match (a.chars().count(), b.chars().count()) {
- (0, b) => return b,
- (a, 0) => return a,
- // (a_len, b_len) if a_len < b_len => return distance(b, a),
- _ => (),
- }
-
- let mut result = 0;
- let mut cache: Vec<usize> = (1..a.chars().count() + 1).collect();
-
- for (index_b, char_b) in b.chars().enumerate() {
- result = index_b;
- let mut distance_a = index_b;
-
- for (index_a, char_a) in a.chars().enumerate() {
- let distance_b = if char_a == char_b {
- distance_a
- } else {
- distance_a + 1
- };
-
- distance_a = cache[index_a];
-
- result = if distance_a > result {
- if distance_b > result {
- result + 1
- } else {
- distance_b
- }
- } else if distance_b > distance_a {
- distance_a + 1
- } else {
- distance_b
- };
-
- cache[index_a] = result;
- }
- }
- result
-}