fn pop(&mut self) -> Result<Self::Elem, crate::StackError> {
        match self.container.pop() {
            Some(e) => Ok(e),
            None => Err(crate::StackError::NotEnoughOperands {
                num_required: 1,
                num_available: 0,
            }),
        }
    }
/// Pop a value from the lowermost register, shifting other registers down.
///
/// Return [Err] if the stack is empty.
///
/// # Example
///
/// ```
/// use smsflib::prelude::*;
///
/// let mut stack = DynamicSizedStack::<u32>::clone_from_slice(&[4, 3, 2, 1]);
/// let res = stack.pop();
///
/// assert_eq!(res, Ok(1));
///
/// assert_eq!(stack.len(), 3);
/// assert_eq!(stack.get(0), Some(&2));
/// assert_eq!(stack.get(1), Some(&3));
/// assert_eq!(stack.get(2), Some(&4));
/// ```
///
/// ```
/// use smsflib::prelude::*;
///
/// let mut stack = DynamicSizedStack::<u32>::new();
/// let res = stack.pop();
///
/// assert_eq!(res, Err(smsflib::StackError::NotEnoughOperands{ num_required: 1, num_available: 0 }));
/// ```
///
Pop a value from the lowermost register, shifting other registers down.
Return [Err] if the stack is empty.
Pop a value from the lowermost register shifting other registers down . Return [ Err ] if the stack is empty .
fn pop(&mut self) -> Result<Self::Elem, crate::StackError> {
        match self.container.pop() {
            Some(e) => Ok(e),
            None => Err(crate::StackError::NotEnoughOperands {
                num_required: 1,
                num_available: 0,
            }),
        }
    }
fn pop ( & mut self ) -> Result < Self :: Elem , crate :: StackError > { match self . container . pop ( ) { Some ( e ) => Ok ( e ) , None => Err ( crate :: StackError :: NotEnoughOperands { num_required : 1 , num_available : 0 , } ) , } }
Pop a value from the lowermost register, shifting other registers down.
Pop a value from the lowermost register shifting other registers down .
&mut self
example
```
use smsflib::prelude::*.

let mut stack = DynamicSizedStack::::clone_from_slice(&[4, 3, 2, 1]);
let res = stack.pop().





```
use smsflib::prelude::*.

let mut stack = DynamicSizedStack::::new();
let res = stack.pop().

assert_eq!(res, Err(smsflib::StackError::NotEnoughOperands{ num_required: 1, num_available: 0 }));
```
` ` ` use smsflib :: prelude :: * . let mut stack = DynamicSizedStack :::: clone_from_slice ( & [ 4 3 2 1 ] ) ; let res = stack . pop () . ` ` ` use smsflib :: prelude :: * . let mut stack = DynamicSizedStack :::: new () ; let res = stack . pop () . assert_eq! ( res Err ( smsflib :: StackError :: NotEnoughOperands { num_required : 1 num_available : 0 } )) ; ` ` `