diff --git a/src/libcore/str.rs b/src/libcore/str.rs index d2e9ad6019b..2ca21383dd5 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -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