fn range_tail_head<R>(&self, range: R) -> (usize, usize)
    where
        R: RangeBounds<usize>,
    {
        let Range { start, end } = slice::range(range, ..self.len());
        let tail = self.wrap_add(self.tail, start);
        let head = self.wrap_add(self.tail, end);
        (tail, head)
    }
Creates a draining iterator that removes the specified range in the
`VecDeque` and yields the removed items.

Note 1: The element range is remove
benchmarks/haystacks/code/rust-library.rs