aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/_str.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/_str.rs b/src/lib/_str.rs
index a29e1daa..751d79cf 100644
--- a/src/lib/_str.rs
+++ b/src/lib/_str.rs
@@ -11,7 +11,7 @@ native "rust" mod rustrt {
fn refcount[T](str s) -> uint;
}
-fn eq(str a, str b) -> bool {
+fn eq(&str a, &str b) -> bool {
let uint i = byte_len(a);
if (byte_len(b) != i) {
ret false;
@@ -27,6 +27,17 @@ fn eq(str a, str b) -> bool {
ret true;
}
+fn hash(&str s) -> uint {
+ // djb hash.
+ // FIXME: replace with murmur.
+ let uint u = 5381u;
+ for (u8 c in s) {
+ u *= 33u;
+ u += (c as uint);
+ }
+ ret u;
+}
+
fn is_utf8(vec[u8] v) -> bool {
fail; // FIXME
}