1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait StackImmut<T>: Sized { fn push(&self, T) -> Self; fn pop(&self) -> Self; fn top(&self) -> Option<&T>; #[inline(always)] fn pop_and_top(&self) -> (Self, Option<&T>) { (self.pop(), self.top()) } }
1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait StackImmut<T>: Sized { fn push(&self, T) -> Self; fn pop(&self) -> Self; fn top(&self) -> Option<&T>; #[inline(always)] fn pop_and_top(&self) -> (Self, Option<&T>) { (self.pop(), self.top()) } }