use alloc::collections::VecDeque; #[cfg(feature = "std")] use std::io; use super::Buf; impl Buf for VecDeque { fn remaining(&self) -> usize { self.len() } fn chunk(&self) -> &[u8] { let (s1, s2) = self.as_slices(); if s1.is_empty() { s2 } else { s1 } } #[cfg(feature = "std")] fn chunks_vectored<'a>(&'a self, dst: &mut [io::IoSlice<'a>]) -> usize { if self.is_empty() || dst.is_empty() { return 0; } let (s1, s2) = self.as_slices(); dst[0] = io::IoSlice::new(s1); if s2.is_empty() || dst.len() == 1 { return 1; } dst[1] = io::IoSlice::new(s2); 2 } fn advance(&mut self, cnt: usize) { self.drain(..cnt); } }