diff options
| author | Matt Brubeck <mbrubeck@limpet.net> | 2017-08-02 10:42:12 -0700 |
|---|---|---|
| committer | Matt Brubeck <mbrubeck@limpet.net> | 2017-08-02 10:42:12 -0700 |
| commit | daa764461d57ab69ef9fa9dcbf2a73c4fb0e6f94 (patch) | |
| tree | 6d21e847642d8d4a11feb61ce7ff8e410bc2b6a5 /src/librustc_data_structures | |
| parent | cd87b5d5162c7696498a5c1e17e1f7af68202eca (diff) | |
| download | rust-daa764461d57ab69ef9fa9dcbf2a73c4fb0e6f94.tar.gz rust-daa764461d57ab69ef9fa9dcbf2a73c4fb0e6f94.zip | |
Remove unused fnv hash code
Diffstat (limited to 'src/librustc_data_structures')
| -rw-r--r-- | src/librustc_data_structures/fnv.rs | 66 | ||||
| -rw-r--r-- | src/librustc_data_structures/lib.rs | 1 |
2 files changed, 0 insertions, 67 deletions
diff --git a/src/librustc_data_structures/fnv.rs b/src/librustc_data_structures/fnv.rs deleted file mode 100644 index 5bd57236e7c..00000000000 --- a/src/librustc_data_structures/fnv.rs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2015 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -use std::collections::{HashMap, HashSet}; -use std::default::Default; -use std::hash::{Hasher, Hash, BuildHasherDefault}; - -pub type FnvHashMap<K, V> = HashMap<K, V, BuildHasherDefault<FnvHasher>>; -pub type FnvHashSet<V> = HashSet<V, BuildHasherDefault<FnvHasher>>; - -#[allow(non_snake_case)] -pub fn FnvHashMap<K: Hash + Eq, V>() -> FnvHashMap<K, V> { - HashMap::default() -} - -#[allow(non_snake_case)] -pub fn FnvHashSet<V: Hash + Eq>() -> FnvHashSet<V> { - HashSet::default() -} - -/// A speedy hash algorithm for node ids and def ids. The hashmap in -/// liballoc by default uses SipHash which isn't quite as speedy as we -/// want. In the compiler we're not really worried about DOS attempts, so we -/// just default to a non-cryptographic hash. -/// -/// This uses FNV hashing, as described here: -/// http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function -pub struct FnvHasher(u64); - -impl Default for FnvHasher { - /// Creates a `FnvHasher`, with a 64-bit hex initial value. - #[inline] - fn default() -> FnvHasher { - FnvHasher(0xcbf29ce484222325) - } -} - -impl Hasher for FnvHasher { - #[inline] - fn write(&mut self, bytes: &[u8]) { - let FnvHasher(mut hash) = *self; - for byte in bytes { - hash = hash ^ (*byte as u64); - hash = hash.wrapping_mul(0x100000001b3); - } - *self = FnvHasher(hash); - } - - #[inline] - fn finish(&self) -> u64 { - self.0 - } -} - -pub fn hash<T: Hash>(v: &T) -> u64 { - let mut state = FnvHasher::default(); - v.hash(&mut state); - state.finish() -} diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs index bb27d479a41..3cb3e088364 100644 --- a/src/librustc_data_structures/lib.rs +++ b/src/librustc_data_structures/lib.rs @@ -65,7 +65,6 @@ pub mod snapshot_vec; pub mod stable_hasher; pub mod transitive_relation; pub mod unify; -pub mod fnv; pub mod fx; pub mod tuple_slice; pub mod veccell; |
