Rollup merge of #41449 - Eh2406:master, r=aturon
FromIterator and Extend Cow for String This is a quick draft to start working on [#41351](https://github.com/rust-lang/rust/issues/41351). I don't think I got the stable attributes correct, but it is good enuf to start a conversation.
This commit is contained in:
commit
ab99c9beb5
@ -1604,6 +1604,15 @@ impl FromIterator<String> for String {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "herd_cows", since = "1.19.0")]
|
||||
impl<'a> FromIterator<Cow<'a, str>> for String {
|
||||
fn from_iter<I: IntoIterator<Item = Cow<'a, str>>>(iter: I) -> String {
|
||||
let mut buf = String::new();
|
||||
buf.extend(iter);
|
||||
buf
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Extend<char> for String {
|
||||
fn extend<I: IntoIterator<Item = char>>(&mut self, iter: I) {
|
||||
@ -1641,6 +1650,15 @@ impl Extend<String> for String {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "herd_cows", since = "1.19.0")]
|
||||
impl<'a> Extend<Cow<'a, str>> for String {
|
||||
fn extend<I: IntoIterator<Item = Cow<'a, str>>>(&mut self, iter: I) {
|
||||
for s in iter {
|
||||
self.push_str(&s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A convenience impl that delegates to the impl for `&str`
|
||||
#[unstable(feature = "pattern",
|
||||
reason = "API not fully fleshed out and ready to be stabilized",
|
||||
|
Loading…
x
Reference in New Issue
Block a user