pub(crate) fn pop_back(&mut self) -> Option<T::Handle> {
        unsafe {
            let last = self.tail?;
            self.tail = T::pointers(last).as_ref().prev;

            if let Some(prev) = T::pointers(last).as_ref().prev {
                T::pointers(prev).as_mut().next = None;
            } else {
                self.head = None
            }

            T::pointers(last).as_mut().prev = None;
            T::pointers(last).as_mut().next = None;

            Some(T::from_raw(last))
        }
    }
/// Removes the last element from a list and returns it, or None if it is
/// empty.
Removes the last element from a list and returns it, or None if it is
empty.
Removes the last element from a list and returns it or None if it is empty .
pub(crate) fn pop_back(&mut self) -> Option<T::Handle> {
        unsafe {
            let last = self.tail?;
            self.tail = T::pointers(last).as_ref().prev;
            if let Some(prev) = T::pointers(last).as_ref().prev {
                T::pointers(prev).as_mut().next = None;
            } else {
                self.head = None
            }
            T::pointers(last).as_mut().prev = None;
            T::pointers(last).as_mut().next = None;
            Some(T::from_raw(last))
        }
    }
pub ( crate ) fn pop_back ( & mut self ) -> Option < T :: Handle > { unsafe { let last = self . tail ? ; self . tail = T :: pointers ( last ) . as_ref ( ) . prev ; if let Some ( prev ) = T :: pointers ( last ) . as_ref ( ) . prev { T :: pointers ( prev ) . as_mut ( ) . next = None ; } else { self . head = None } T :: pointers ( last ) . as_mut ( ) . prev = None ; T :: pointers ( last ) . as_mut ( ) . next = None ; Some ( T :: from_raw ( last ) ) } }
Removes the last element from a list and returns it, or None if it is
empty.
Removes the last element from a list and returns it or None if it is empty .
&mut self