smol_bytes/buffer/
iter.rs1use super::Buffer;
2
3impl<'a> IntoIterator for &'a Buffer {
4 type Item = &'a u8;
5 type IntoIter = core::slice::Iter<'a, u8>;
6
7 #[cfg_attr(not(coverage), inline(always))]
8 fn into_iter(self) -> Self::IntoIter {
9 self.as_slice().iter()
10 }
11}
12
13#[cfg(any(feature = "std", feature = "alloc"))]
14impl IntoIterator for Buffer {
15 type Item = u8;
16 type IntoIter = ::bytes::buf::IntoIter<Buffer>;
17
18 #[cfg_attr(not(coverage), inline(always))]
19 fn into_iter(self) -> Self::IntoIter {
20 ::bytes::buf::IntoIter::new(self)
21 }
22}
23
24#[cfg(not(any(feature = "std", feature = "alloc")))]
26#[derive(Debug)]
27pub struct IntoIter<T> {
28 inner: T,
29}
30
31#[cfg(not(any(feature = "std", feature = "alloc")))]
32const _: () = {
33 impl Iterator for IntoIter<Buffer> {
34 type Item = u8;
35
36 #[cfg_attr(not(coverage), inline(always))]
37 fn next(&mut self) -> Option<Self::Item> {
38 self.inner.try_get_u8().ok()
39 }
40 }
41
42 impl IntoIterator for Buffer {
43 type Item = u8;
44 type IntoIter = IntoIter<Buffer>;
45
46 #[cfg_attr(not(coverage), inline(always))]
47 fn into_iter(self) -> Self::IntoIter {
48 IntoIter { inner: self }
49 }
50 }
51};