rust_multistack/
ts_drop_stack.rs

1use crate::ts::TS;
2use easy_error::{bail, Error};
3
4pub fn ts_drop_stack(ts: &mut TS) -> Result<&mut TS, Error> {
5    ts.drop_stack()
6}
7
8impl TS {
9
10    pub fn drop_stack(&mut self) -> Result<&mut TS, Error> {
11        match self.current_stack_name() {
12            Some(name) => {
13                if self.stack.contains_key(&name) {
14                    self.stacks.pop_back();
15                    self.stack.remove(&name);
16                }
17            }
18            None => {
19                bail!("Can not detect stack name for drop_stack() operation");
20            }
21        }
22        Ok(self)
23    }
24}