From 060609cd568454ecbe8565ab699718f13ff71a26 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 27 Aug 2012 16:57:20 -0700 Subject: [PATCH] libcore: Implement Eq for string types --- src/libcore/str.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/libcore/str.rs b/src/libcore/str.rs index d2e9ad6019b5..2ca21383dd5d 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