1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
pub trait DequeImmut<T>: Sized { fn push_front(&self, T) -> Self; fn push_back(&self, T) -> Self; fn pop_front(&self) -> Self; fn pop_back(&self) -> Self; fn front(&self) -> Option<&T>; fn back(&self) -> Option<&T>; #[inline(always)] fn pop_and_front(&self) -> (Self, Option<&T>) { (self.pop_front(), self.front()) } #[inline(always)] fn pop_and_back(&self) -> (Self, Option<&T>) { (self.pop_back(), self.back()) } }