smol_bytes/utf8_bytes_mut/
iter.rs1use std::string::String;
2
3use super::*;
4
5impl Extend<char> for Utf8BytesMut {
6 #[cfg_attr(not(coverage), inline(always))]
7 fn extend<T: IntoIterator<Item = char>>(&mut self, iter: T) {
8 for ch in iter {
9 self.push(ch);
10 }
11 }
12}
13
14impl<'a> Extend<&'a char> for Utf8BytesMut {
15 #[cfg_attr(not(coverage), inline(always))]
16 fn extend<T: IntoIterator<Item = &'a char>>(&mut self, iter: T) {
17 self.extend(iter.into_iter().copied());
18 }
19}
20
21impl<'a> Extend<&'a str> for Utf8BytesMut {
22 #[cfg_attr(not(coverage), inline(always))]
23 fn extend<T: IntoIterator<Item = &'a str>>(&mut self, iter: T) {
24 for s in iter {
25 self.push_str(s);
26 }
27 }
28}
29
30impl Extend<String> for Utf8BytesMut {
31 #[cfg_attr(not(coverage), inline(always))]
32 fn extend<T: IntoIterator<Item = String>>(&mut self, iter: T) {
33 for s in iter {
34 self.push_str(&s);
35 }
36 }
37}
38
39impl<'a> Extend<&'a String> for Utf8BytesMut {
40 #[cfg_attr(not(coverage), inline(always))]
41 fn extend<T: IntoIterator<Item = &'a String>>(&mut self, iter: T) {
42 for s in iter {
43 self.push_str(s);
44 }
45 }
46}
47
48impl<T> FromIterator<T> for Utf8BytesMut
49where
50 Utf8BytesMut: Extend<T>,
51{
52 #[cfg_attr(not(coverage), inline(always))]
53 fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
54 let mut bytes = Self::new();
55 bytes.extend(iter);
56 bytes
57 }
58}