+// xxx are we using this at all ?
+#[derive(Default,Clone)]
+pub struct PacketQueue<D> {
+ queue: VecDeque<D>,
+ content: usize,
+}
+
+impl<D> PacketQueue<D> where D: AsRef<[u8]> {
+ pub fn push_back(&mut self, data: D) {
+ self.content += data.as_ref().len();
+ self.queue.push_back(data);
+ }
+
+ pub fn pop_front(&mut self) -> Option<D> {
+ let data = self.queue.pop_front()?;
+ self.content -= data.as_ref().len();
+ Some(data)
+ }
+
+ pub fn is_empty(&self) -> bool { self.queue.is_empty() }
+ pub fn peek_front(&self) -> Option<&D> { self.queue.front() }
+}
+