Solución equivalente un poquito más concisa :3
pub fn obtener_memes_museo(&self, nombre_museo: String) -> Vec<Meme> {
// con map_or_else evitamos alojar un nuevo vector de no ser necesario
self.museos.get(&nombre_museo).map_or_else(Vec::new, |m| {
// filtramos y mapeamos en una sola llamada los memes existentes
// es decir, si self.memes.get(...) devuelve None, esto no se incluye
m.iter().filter_map(|id| self.memes.get(id)).collect()
})
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?