pub fn take<Q: ?Sized>(&mut self, value: &Q) -> Option<T>
    where
        T: Borrow<Q> + Ord,
        Q: Ord,
    {
        Recover::take(&mut self.map, value)
    }
Creates an iterator which uses a closure to determine if a value should be removed.

If the closure returns true, then the value is removed and
benchmarks/haystacks/code/rust-library.rs