rustack 0.1.0

A stack implementation in Rust.
Documentation
pub struct Stack<T> {
    data: Vec<T>,
}

impl<T> Stack<T> {
    pub fn new() -> Self {
        Stack { data: Vec::new() }
    }

    pub fn push(&mut self, item: T) {
        self.data.push(item);
    }

    pub fn pop(&mut self) -> Option<T> {
        self.data.pop()
    }

    pub fn peek(&self) -> Option<&T> {
        self.data.last()
    }

    pub fn is_empty(&self) -> bool {
        self.data.is_empty()
    }

    pub fn len(&self) -> usize {
        self.data.len()
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn stack_operations() {
        let mut stack = Stack::new();
        assert!(stack.is_empty());

        stack.push(42);
        assert_eq!(stack.peek(), Some(&42));

        assert_eq!(stack.pop(), Some(42));
        assert!(stack.is_empty());
    }
}