1 use rustc_data_structures::fingerprint::Fingerprint;
2 use rustc_span::def_id::{DefIndex, DefPathHash};
4 #[derive(Clone, Default)]
7 impl odht::Config for Config {
8 type Key = DefPathHash;
11 type EncodedKey = [u8; 16];
12 type EncodedValue = [u8; 4];
14 type H = odht::UnHashFn;
17 fn encode_key(k: &DefPathHash) -> [u8; 16] {
22 fn encode_value(v: &DefIndex) -> [u8; 4] {
23 v.as_u32().to_le_bytes()
27 fn decode_key(k: &[u8; 16]) -> DefPathHash {
28 DefPathHash(Fingerprint::from_le_bytes(*k))
32 fn decode_value(v: &[u8; 4]) -> DefIndex {
33 DefIndex::from_u32(u32::from_le_bytes(*v))
37 pub type DefPathHashMap = odht::HashTableOwned<Config>;