1 //! This module provides a primitive hash function.
2 
3 /// A primitive hash function for matching opcodes.
simple_hash(s: &str) -> usize4 pub fn simple_hash(s: &str) -> usize {
5     let mut h: u32 = 5381;
6     for c in s.chars() {
7         h = (h ^ c as u32).wrapping_add(h.rotate_right(6));
8     }
9     h as usize
10 }
11 
12 #[cfg(test)]
13 mod tests {
14     use super::simple_hash;
15 
16     #[test]
basic()17     fn basic() {
18         assert_eq!(simple_hash("Hello"), 0x2fa70c01);
19         assert_eq!(simple_hash("world"), 0x5b0c31d5);
20     }
21 }
22