50 | 2.42G | } unicode_normalization::perfect_hash::mph_lookup::<(u32, (u16, u16)), core::option::Option<(u16, u16)>, unicode_normalization::lookups::pair_lookup_fk<(u16, u16)>, unicode_normalization::lookups::pair_lookup_fv_opt<(u16, u16)>> Line | Count | Source | 30 | 833M | pub(crate) fn mph_lookup<KV, V, FK, FV>( | 31 | 833M | x: u32, | 32 | 833M | salt: &[u16], | 33 | 833M | kv: &[KV], | 34 | 833M | fk: FK, | 35 | 833M | fv: FV, | 36 | 833M | default: V, | 37 | 833M | ) -> V | 38 | 833M | where | 39 | 833M | KV: Copy, | 40 | 833M | FK: Fn(KV) -> u32, | 41 | 833M | FV: Fn(KV) -> V, | 42 | | { | 43 | 833M | let s = salt[my_hash(x, 0, salt.len())] as u32; | 44 | 833M | let key_val = kv[my_hash(x, s, salt.len())]; | 45 | 833M | if x == fk(key_val) { | 46 | 142M | fv(key_val) | 47 | | } else { | 48 | 691M | default | 49 | | } | 50 | 833M | } |
unicode_normalization::perfect_hash::mph_lookup::<(u32, char), core::option::Option<char>, unicode_normalization::lookups::pair_lookup_fk<char>, unicode_normalization::lookups::pair_lookup_fv_opt<char>> Line | Count | Source | 30 | 127M | pub(crate) fn mph_lookup<KV, V, FK, FV>( | 31 | 127M | x: u32, | 32 | 127M | salt: &[u16], | 33 | 127M | kv: &[KV], | 34 | 127M | fk: FK, | 35 | 127M | fv: FV, | 36 | 127M | default: V, | 37 | 127M | ) -> V | 38 | 127M | where | 39 | 127M | KV: Copy, | 40 | 127M | FK: Fn(KV) -> u32, | 41 | 127M | FV: Fn(KV) -> V, | 42 | | { | 43 | 127M | let s = salt[my_hash(x, 0, salt.len())] as u32; | 44 | 127M | let key_val = kv[my_hash(x, s, salt.len())]; | 45 | 127M | if x == fk(key_val) { | 46 | 7.23M | fv(key_val) | 47 | | } else { | 48 | 120M | default | 49 | | } | 50 | 127M | } |
unicode_normalization::perfect_hash::mph_lookup::<u32, bool, unicode_normalization::lookups::bool_lookup_fk, unicode_normalization::lookups::bool_lookup_fv> Line | Count | Source | 30 | 44 | pub(crate) fn mph_lookup<KV, V, FK, FV>( | 31 | 44 | x: u32, | 32 | 44 | salt: &[u16], | 33 | 44 | kv: &[KV], | 34 | 44 | fk: FK, | 35 | 44 | fv: FV, | 36 | 44 | default: V, | 37 | 44 | ) -> V | 38 | 44 | where | 39 | 44 | KV: Copy, | 40 | 44 | FK: Fn(KV) -> u32, | 41 | 44 | FV: Fn(KV) -> V, | 42 | | { | 43 | 44 | let s = salt[my_hash(x, 0, salt.len())] as u32; | 44 | 44 | let key_val = kv[my_hash(x, s, salt.len())]; | 45 | 44 | if x == fk(key_val) { | 46 | 0 | fv(key_val) | 47 | | } else { | 48 | 44 | default | 49 | | } | 50 | 44 | } |
unicode_normalization::perfect_hash::mph_lookup::<u32, u8, unicode_normalization::lookups::u8_lookup_fk, unicode_normalization::lookups::u8_lookup_fv> Line | Count | Source | 30 | 1.46G | pub(crate) fn mph_lookup<KV, V, FK, FV>( | 31 | 1.46G | x: u32, | 32 | 1.46G | salt: &[u16], | 33 | 1.46G | kv: &[KV], | 34 | 1.46G | fk: FK, | 35 | 1.46G | fv: FV, | 36 | 1.46G | default: V, | 37 | 1.46G | ) -> V | 38 | 1.46G | where | 39 | 1.46G | KV: Copy, | 40 | 1.46G | FK: Fn(KV) -> u32, | 41 | 1.46G | FV: Fn(KV) -> V, | 42 | | { | 43 | 1.46G | let s = salt[my_hash(x, 0, salt.len())] as u32; | 44 | 1.46G | let key_val = kv[my_hash(x, s, salt.len())]; | 45 | 1.46G | if x == fk(key_val) { | 46 | 1.01G | fv(key_val) | 47 | | } else { | 48 | 449M | default | 49 | | } | 50 | 1.46G | } |
|