about summary refs log tree commit diff
path: root/src/libcore/array.rs
diff options
context:
space:
mode:
authorJorge Aparicio <japaricious@gmail.com>2015-01-19 15:16:48 -0500
committerJorge Aparicio <japaricious@gmail.com>2015-01-19 15:29:27 -0500
commita09df2cb9d1e6025a9565f3ef7983cb743b421a3 (patch)
tree0a5cab1f52175a81851a49ac10996b77f18cfa29 /src/libcore/array.rs
parent54c9a4655b8c662b5ce3a7ad8a47a4d4d12e78b7 (diff)
downloadrust-a09df2cb9d1e6025a9565f3ef7983cb743b421a3.tar.gz
rust-a09df2cb9d1e6025a9565f3ef7983cb743b421a3.zip
impl Hash for arrays
closes #21402
cc #15294
Diffstat (limited to 'src/libcore/array.rs')
-rw-r--r--src/libcore/array.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libcore/array.rs b/src/libcore/array.rs
index c07fac108d6..0cc31bf70de 100644
--- a/src/libcore/array.rs
+++ b/src/libcore/array.rs
@@ -17,6 +17,7 @@
 use clone::Clone;
 use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering};
 use fmt;
+use hash::{Hash, Hasher, self};
 use marker::Copy;
 use ops::{Deref, FullRange};
 use option::Option;
@@ -32,6 +33,12 @@ macro_rules! array_impls {
                 }
             }
 
+            impl<S: hash::Writer + Hasher, T: Hash<S>> Hash<S> for [T; $N] {
+                fn hash(&self, state: &mut S) {
+                    Hash::hash(&self[], state)
+                }
+            }
+
             #[unstable = "waiting for Show to stabilize"]
             impl<T:fmt::Show> fmt::Show for [T; $N] {
                 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {