pub fn edit_distance(a: &str, b: &str) -> usize
Levenshtein edit distance (Wagner-Fischer, 跟 TS line 215-230 1:1).