use maybe_borrow::maybe_borrow;
use std::{borrow::Borrow, collections::HashMap};
pub fn get_first_available_mut<T>(
mut map: &mut HashMap<String, T>,
keys: impl IntoIterator<Item: Borrow<str>>,
) -> Option<&mut T> {
for key in keys {
maybe_borrow!(for<'x> |map| -> Option<&'x mut T> {
if let value @ Some(_) = map.get_mut(key.borrow()) {
return_borrowed!(value);
}
});
}
None
}