diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index bd39c74aa840b..741711d5dbc0f 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -351,6 +351,14 @@ impl<'a, S: Str> Equiv for String { } } +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::*; @@ -467,4 +475,13 @@ mod tests { 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"); + } }