kjson 0.0.7

A lightweight JSON parser intended for educational use and learning purposes.
Documentation
pub struct Stack<T> {
    stack: Vec<T>,
}

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

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

    pub fn push_bytes(&mut self, bytes: &[T])
    where
        T: Clone,
    {
        for b in bytes {
            self.stack.push(b.clone());
        }
    }

    pub fn push_byte(&mut self, b: T) {
        self.stack.push(b);
    }

    pub fn pop_bytes(&mut self, size: usize) -> Vec<T> {
        let len = self.stack.len();
        if size <= len {
            let removed: Vec<T> = self.stack.drain(len - size..).collect();
            removed
        } else {
            panic!("Not enough elements in VecDeque");
        }
    }
}