use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
use std::collections::BTreeMap;
use usage::Usage;
use super::TextureId;
pub enum TextureSizesTag {}
pub type TextureSizes = Usage<TextureSizesTag, BTreeMap<TextureId, (u32, u32)>>;
pub fn texture_sizes(
textures: &BTreeMap<TextureId, String>,
texture_sizes: BTreeMap<&str, (u32, u32)>,
) -> TextureSizes {
textures
.par_iter()
.flat_map(|(texture_id, texture)| {
if let Some(texture_size) = texture_sizes.get(texture.as_str()) {
Some((*texture_id, *texture_size))
} else {
None
}
})
.collect()
}