sniffer_rs/hamming/
mod.rs

1/// Returns the amount of different positional characters (Hamming distance).
2///
3/// More at https://en.wikipedia.org/wiki/Hamming_distance
4pub fn get_hamming_distance(original: impl Into<String>, search: impl Into<String>) -> usize {
5
6    let original = original.into();
7    let original_chars: Vec<char> = original.chars().collect();
8    let search = search.into();
9    let search_chars: Vec<char> = search.chars().collect();
10
11    if original_chars.len() != search_chars.len() {
12        panic!("Strings must have the same length");
13    }
14
15    let mut distance = 0;
16
17    for (index, char) in original_chars.iter().enumerate() {
18        if char != &search_chars[index] {
19            distance += 1;
20        }
21    }
22
23    distance
24}