near_stable_hasher/
lib.rs1#[allow(deprecated)]
2use std::hash::{Hasher, SipHasher};
3
4#[allow(deprecated)]
6#[derive(Default, Clone)]
7pub struct StableHasher(pub SipHasher);
8
9impl StableHasher {
10 #[allow(deprecated)]
11 pub fn new() -> StableHasher {
12 StableHasher(SipHasher::new())
13 }
14}
15
16impl Hasher for StableHasher {
17 fn finish(&self) -> u64 {
18 self.0.finish()
19 }
20 fn write(&mut self, bytes: &[u8]) {
21 self.0.write(bytes)
22 }
23}
24
25#[cfg(test)]
26mod tests {
27 use crate::StableHasher;
28 use std::hash::Hasher;
29
30 #[test]
32 fn test_stable_hasher() {
33 let mut sh = StableHasher::new();
34
35 sh.write(&[1, 2, 3, 4, 5]);
36 let finish = sh.finish();
37 assert_eq!(finish, 12661990674860217757)
38 }
39}