diff options
| author | Laurențiu Nicola <lnicola@dend.ro> | 2025-02-17 13:20:12 +0200 |
|---|---|---|
| committer | Laurențiu Nicola <lnicola@dend.ro> | 2025-02-17 13:20:12 +0200 |
| commit | b571e8a8aca9e22834a80cd8bff13ef311b447a1 (patch) | |
| tree | 34845c6ebfef9cb3705f610783a2b6da4a275b5b /library/alloc/src/string.rs | |
| parent | 19fa3deab30f89b0c5fb0b7144a074d95a35ab5e (diff) | |
| parent | 273465e1f2932a30a5b56ac95859cdc86f3f33fa (diff) | |
Merge from rust-lang/rust
Diffstat (limited to 'library/alloc/src/string.rs')
| -rw-r--r-- | library/alloc/src/string.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs index b29f740ef0f..154da691078 100644 --- a/library/alloc/src/string.rs +++ b/library/alloc/src/string.rs @@ -2442,6 +2442,32 @@ impl<'a> Extend<Cow<'a, str>> for String { } } +#[cfg(not(no_global_oom_handling))] +#[unstable(feature = "ascii_char", issue = "110998")] +impl Extend<core::ascii::Char> for String { + fn extend<I: IntoIterator<Item = core::ascii::Char>>(&mut self, iter: I) { + self.vec.extend(iter.into_iter().map(|c| c.to_u8())); + } + + #[inline] + fn extend_one(&mut self, c: core::ascii::Char) { + self.vec.push(c.to_u8()); + } +} + +#[cfg(not(no_global_oom_handling))] +#[unstable(feature = "ascii_char", issue = "110998")] +impl<'a> Extend<&'a core::ascii::Char> for String { + fn extend<I: IntoIterator<Item = &'a core::ascii::Char>>(&mut self, iter: I) { + self.extend(iter.into_iter().cloned()); + } + + #[inline] + fn extend_one(&mut self, c: &'a core::ascii::Char) { + self.vec.push(c.to_u8()); + } +} + /// A convenience impl that delegates to the impl for `&str`. /// /// # Examples |
