1use std::{
2 collections::HashMap,
3 hash::{BuildHasher, Hasher},
4};
5
6use super::Client;
7
8#[derive(Default)]
9pub struct ClientHasher(Client);
10
11impl Hasher for ClientHasher {
12 fn finish(&self) -> u64 {
13 self.0
14 }
15
16 fn write(&mut self, _: &[u8]) {}
17
18 fn write_u64(&mut self, i: u64) {
19 self.0 = i
20 }
21}
22
23#[derive(Default, Clone)]
24pub struct ClientHasherBuilder;
25
26impl BuildHasher for ClientHasherBuilder {
27 type Hasher = ClientHasher;
28
29 fn build_hasher(&self) -> Self::Hasher {
30 ClientHasher::default()
31 }
32}
33
34pub type ClientMap<V> = HashMap<Client, V, ClientHasherBuilder>;