fn map_variants()

in native/src/work_asset/construct.rs [192:204]


    fn map_variants(&self, variant_ix_lookup: HashMap<usize, Tag>) -> Result<Vec<Vec<HashMap<Tag, MeldKey>>>> {
        let map_material = |(tag, ix): (&MeldKey, &usize)| -> Result<(Tag, MeldKey)> {
            Ok((tag.to_string(), self.material_keys[*ix].to_owned()))
        };
        let map_primitive = |p: &Primitive| -> Result<HashMap<Tag, MeldKey>> {
            let variant_map = extension::extract_variant_map(p, &variant_ix_lookup)?;
            variant_map.iter().map(map_material).collect()
        };
        let map_mesh = |m: &Mesh| -> Result<Vec<HashMap<Tag, MeldKey>>> {
            m.primitives.iter().map(map_primitive).collect()
        };
        self.parse.meshes.iter().map(map_mesh).collect()
    }