about summary refs log tree commit diff
path: root/src/librustc/metadata
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2014-02-21 21:33:23 -0800
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2014-02-21 21:33:23 -0800
commitd223dd1e57cc412aa2eff28e6604f86b9f013083 (patch)
treeaa8d3f01f77b0a74c024d1632df29d5a95f4724e /src/librustc/metadata
parent0135b521ad38615e9a07aac54d9c22627af57ca4 (diff)
downloadrust-d223dd1e57cc412aa2eff28e6604f86b9f013083.tar.gz
rust-d223dd1e57cc412aa2eff28e6604f86b9f013083.zip
std: rewrite Hash to make it more generic
This patch merges IterBytes and Hash traits, which clears up the
confusion of using `#[deriving(IterBytes)]` to support hashing.
Instead, it now is much easier to use the new `#[deriving(Hash)]`
for making a type hashable with a stream hash.

Furthermore, it supports custom non-stream-based hashers, such as
if a value's hash was cached in a database.

This does not yet replace the old IterBytes-hash with this new
version.
Diffstat (limited to 'src/librustc/metadata')
-rw-r--r--src/librustc/metadata/decoder.rs1
-rw-r--r--src/librustc/metadata/encoder.rs1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs
index 47fcc453489..88aff133fb0 100644
--- a/src/librustc/metadata/decoder.rs
+++ b/src/librustc/metadata/decoder.rs
@@ -27,6 +27,7 @@ use middle::typeck;
 use middle::astencode::vtable_decoder_helpers;
 
 use std::u64;
+use std::hash_old::Hash;
 use std::io;
 use std::io::extensions::u64_from_be_bytes;
 use std::option;
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index d2b843cdcf7..7b7f45b2d2d 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -26,6 +26,7 @@ use middle;
 use serialize::Encodable;
 use std::cast;
 use std::cell::{Cell, RefCell};
+use std::hash_old::Hash;
 use std::hashmap::{HashMap, HashSet};
 use std::io::MemWriter;
 use std::str;