link_cli/sequences/
default_stack.rs1#[derive(Clone, Debug)]
2pub struct DefaultStack<T> {
3 items: Vec<T>,
4}
5
6impl<T> Default for DefaultStack<T> {
7 fn default() -> Self {
8 Self { items: Vec::new() }
9 }
10}
11
12impl<T> DefaultStack<T> {
13 pub fn new() -> Self {
14 Self::default()
15 }
16
17 pub fn push(&mut self, item: T) {
18 self.items.push(item);
19 }
20
21 pub fn pop(&mut self) -> Option<T> {
22 self.items.pop()
23 }
24
25 pub fn len(&self) -> usize {
26 self.items.len()
27 }
28
29 pub fn is_empty(&self) -> bool {
30 self.items.is_empty()
31 }
32}