From f7f95c8f5a6294f161800dbb65a0423bb5248f34 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 27 May 2014 21:34:00 -0700 Subject: [PATCH] std: Bring back half of Add on String This adds an implementation of Add for String where the rhs is . The other half of adding strings is where the lhs is , but coherence and the libcore separation currently prevent that. --- src/libcollections/string.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index 76f53c9b257..6d1fc43a4f1 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -352,6 +352,14 @@ fn equiv(&self, other: &S) -> bool { } } +impl Add for String { + fn add(&self, other: &S) -> String { + let mut s = self.to_string(); + s.push_str(other.as_slice()); + return s; + } +} + #[cfg(test)] mod tests { use std::prelude::*; @@ -469,4 +477,13 @@ fn test_str_clear() { assert_eq!(s.len(), 0); assert_eq!(s.as_slice(), ""); } + + #[test] + fn test_str_add() { + let a = String::from_str("12345"); + let b = a + "2"; + let b = b + String::from_str("2"); + assert_eq!(b.len(), 7); + assert_eq!(b.as_slice(), "1234522"); + } } -- 2.44.0