pub fn pop_front(&mut self) -> Option<T> {
        if self.is_empty(){
            None
        } else {
            let tmp = self.pop_at(self.start);
            self.incr_start();
            Some(tmp)
        }
    }
/**
    Pops an element from the beginning of the buffer.

    # Example

    ```
    use advanced_collections::circular_buffer::CircularBuffer;

    fn main(){
        let mut cb = CircularBuffer::from(vec![1,2]);

        assert_eq!(cb.pop_front(), Some(1));
        assert_eq!(cb.pop_front(), Some(2));
        assert_eq!(cb.pop_front(), None);
    }
    ```
    */
Pops an element from the beginning of the buffer.
Pops an element from the beginning of the buffer .
pub fn pop_front(&mut self) -> Option<T> {
        if self.is_empty(){
            None
        } else {
            let tmp = self.pop_at(self.start);
            self.incr_start();
            Some(tmp)
        }
    }
pub fn pop_front ( & mut self ) -> Option < T > { if self . is_empty ( ) { None } else { let tmp = self . pop_at ( self . start ) ; self . incr_start ( ) ; Some ( tmp ) } }
Pops an element from the beginning of the buffer.
Pops an element from the beginning of the buffer .
&mut self
&mut self
example
```
use advanced_collections::circular_buffer::CircularBuffer.

fn main(){
let mut cb = CircularBuffer::from(vec![1,2]).


` ` ` use advanced_collections :: circular_buffer :: CircularBuffer . fn main () { let mut cb = CircularBuffer :: from ( vec! [ 1 2 ] ) .