Is there an idiomatic way to take any value from a HashMap (I don't care which one). None if HashMap is empty.
This function would have type signature &mut self -> Option<(K, V)>. I searched HashMap in std::collections - Rust but found pub fn remove_entry<Q: ?Sized>(&mut self, k: &Q) -> Option<(K, V)> which requires a key.
Context: I'm using a HashMap to represent a set of named consumers; and when something is ready, I want to send it to some consumer, I don't care which one.
Do you still need the map to be otherwise usable as a normal map when you're in this phase? If you're allowed to fully consume it, then you can just keep its IntoIter and pick off items one by one.
If it doesn't have to be HashMap exactly, then you could use IndexMap and its pop() method. You can also use swap_remove_index on a randomly chosen index in 0..len(), if you don't want to be biased toward the last insertion.