pub fn pop_back(&mut self) -> Option<A::Item> {
        if self.is_empty() {
            return None;
        }
        unsafe {
            self.set_head_backward();
            let head = self.head();
            Some(self.buffer_read(head))
        }
    }
/// Removes the last element from a buffer and returns it, or `None` if
/// it is empty.
///
/// # Examples
///
/// ```
/// use arraydeque::ArrayDeque;
///
/// let mut buf: ArrayDeque<[_; 2]> = ArrayDeque::new();
/// assert_eq!(buf.pop_back(), None);
///
/// buf.push_back(1);
/// buf.push_back(2);
///
/// assert_eq!(buf.pop_back(), Some(2));
/// assert_eq!(buf.pop_back(), Some(1));
/// ```
Removes the last element from a buffer and returns it, or `None` if
it is empty.
Removes the last element from a buffer and returns it or ` None ` if it is empty .
pub fn pop_back(&mut self) -> Option<A::Item> {
        if self.is_empty() {
            return None;
        }
        unsafe {
            self.set_head_backward();
            let head = self.head();
            Some(self.buffer_read(head))
        }
    }
pub fn pop_back ( & mut self ) -> Option < A :: Item > { if self . is_empty ( ) { return None ; } unsafe { self . set_head_backward ( ) ; let head = self . head ( ) ; Some ( self . buffer_read ( head ) ) } }
Removes the last element from a buffer and returns it, or `None` if
it is empty.
Removes the last element from a buffer and returns it or ` None ` if it is empty .
&mut self
examples
```
use arraydeque::ArrayDeque.

let mut buf: ArrayDeque<[_; 2]> = ArrayDeque::new();
assert_eq!(buf.pop_back(), None).




` ` ` use arraydeque :: ArrayDeque . let mut buf : ArrayDeque< [ _ ; 2 ] > = ArrayDeque :: new () ; assert_eq! ( buf . pop_back () None ) .