}
}
+#[experimental = "waiting on FromIterator stabilization"]
+impl<'a> FromIterator<&'a str> for String {
+ fn from_iter<I:Iterator<&'a str>>(iterator: I) -> String {
+ let mut buf = String::new();
+ buf.extend(iterator);
+ buf
+ }
+}
+
#[experimental = "waiting on Extend stabilization"]
impl Extend<char> for String {
fn extend<I:Iterator<char>>(&mut self, mut iterator: I) {
}
}
+#[experimental = "waiting on Extend stabilization"]
+impl<'a> Extend<&'a str> for String {
+ fn extend<I: Iterator<&'a str>>(&mut self, mut iterator: I) {
+ // A guess that at least one byte per iterator element will be needed.
+ let (lower_bound, _) = iterator.size_hint();
+ self.reserve(lower_bound);
+ for s in iterator {
+ self.push_str(s)
+ }
+ }
+}
+
impl PartialEq for String {
#[inline]
fn eq(&self, other: &String) -> bool { PartialEq::eq(&**self, &**other) }