pub fn pop_last(&self) -> io::Result<Option<(InlineArray, InlineArray)>> {
        loop {
            if let Some(first_res) = self.iter().next_back() {
                let first = first_res?;
                if self
                    .compare_and_swap::<_, _, &[u8]>(
                        &first.0,
                        Some(&first.1),
                        None,
                    )?
                    .is_ok()
                {
                    log::trace!("pop_last removed item {:?}", first);
                    return Ok(Some(first));
                }
            // try again
            } else {
                log::trace!("pop_last removed nothing from empty tree");
                return Ok(None);
            }
        }
    }
Atomically removes the maximum item in the `Tree` instance.

# Examples

```
# fn main() -> Result<(), Box<dyn std::error::Error>> {
# let config = sled::Config::tmp().unwrap();
# let db: sled::Db<1024> = config.open()?;
db.insert(&[0], vec![0])?;
db.insert(&[1], vec![10])?;
db.insert(&[2], vec![20])?;
db.insert(&[3], vec![30])?;
db.insert(&[4], vec![40])?;
db.insert(&[5], vec![50])?;

assert_eq!(&db.pop_last()?.unwrap().0, &[5]);
assert_eq!(&db.pop_last()?.unwrap().0, &[4]);
assert_eq!(&db.pop_last()?.unwrap().0, &[3]);
assert_eq!(&db.pop_last()?.unwrap().0, &[2]);
assert_eq!(&db.pop_last()?.unwrap().0, &[1]);
assert_eq!(&db.pop_last()?.unwrap().0, &[0]);
assert_eq!(db.pop_last()?, None);
# Ok(()) }
```
src/tree.rs