libcore: Implement Eq for string types

This commit is contained in:
Patrick Walton 2012-08-27 16:57:20 -07:00
parent 381a628c4c
commit 060609cd56

View file

@ -7,6 +7,7 @@
* some heavy-duty uses, try std::rope.
*/
import cmp::Eq;
import libc::size_t;
import io::WriterUtil;
@ -694,6 +695,30 @@ pure fn eq(a: &~str, b: &~str) -> bool {
/// Bytewise less than or equal
pure fn le(a: &~str, b: &~str) -> bool { *a <= *b }
#[cfg(notest)]
impl &str: Eq {
#[inline(always)]
pure fn eq(&&other: &str) -> bool {
eq_slice(self, other)
}
}
#[cfg(notest)]
impl ~str: Eq {
#[inline(always)]
pure fn eq(&&other: ~str) -> bool {
eq_slice(self, other)
}
}
#[cfg(notest)]
impl @str: Eq {
#[inline(always)]
pure fn eq(&&other: @str) -> bool {
eq_slice(self, other)
}
}
/// String hash function
pure fn hash(s: &~str) -> uint {
hash::hash_str(*s) as uint