diff --git a/Cargo.lock b/Cargo.lock index 25512e5..d3de724 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1056,12 +1056,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "levenshtein" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" - [[package]] name = "libc" version = "0.2.136" @@ -1767,11 +1761,11 @@ dependencies = [ "itertools", "lalrpop", "lalrpop-util", - "levenshtein", "once_cell", "regex", "serde", "serde_json", + "strsim", "strum", "thiserror", ] diff --git a/crates/simplexpr/Cargo.toml b/crates/simplexpr/Cargo.toml index c10d71c..03748b1 100644 --- a/crates/simplexpr/Cargo.toml +++ b/crates/simplexpr/Cargo.toml @@ -20,7 +20,7 @@ thiserror = "1.0" once_cell = "1.8.0" serde = {version = "1.0", features = ["derive"]} serde_json = "1.0" -levenshtein = "1.0" +strsim = "0.10" strum = { version = "0.24", features = ["derive"] } diff --git a/crates/simplexpr/src/eval.rs b/crates/simplexpr/src/eval.rs index a4ff8ba..8a75325 100644 --- a/crates/simplexpr/src/eval.rs +++ b/crates/simplexpr/src/eval.rs @@ -114,7 +114,7 @@ impl SimplExpr { Some(value) => Ok(Literal(value.clone())), None => { let similar_ish = - variables.keys().filter(|key| levenshtein::levenshtein(&key.0, &name.0) < 3).cloned().collect_vec(); + variables.keys().filter(|key| strsim::levenshtein(&key.0, &name.0) < 3).cloned().collect_vec(); Err(EvalError::UnknownVariable(name.clone(), similar_ish).at(span)) } }) @@ -170,7 +170,7 @@ impl SimplExpr { } SimplExpr::VarRef(span, ref name) => { let similar_ish = - values.keys().filter(|keys| levenshtein::levenshtein(&keys.0, &name.0) < 3).cloned().collect_vec(); + values.keys().filter(|keys| strsim::levenshtein(&keys.0, &name.0) < 3).cloned().collect_vec(); Ok(values .get(name) .cloned()