1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use alloc::collections::VecDeque;
use super::Buf;
impl Buf for VecDeque<u8> {
    fn remaining(&self) -> usize {
        self.len()
    }
    fn chunk(&self) -> &[u8] {
        let (s1, s2) = self.as_slices();
        if s1.is_empty() {
            s2
        } else {
            s1
        }
    }
    fn advance(&mut self, cnt: usize) {
        self.drain(..cnt);
    }
}