fn read_data()

in src/wit.rs [160:178]


    fn read_data(&self, data: String) {
        let result: Result<Vec<serde_json::Map<String, serde_json::Value>>, _> =
            serde_json::from_str(&data);
        if let Ok(data) = result {
            for item in data {
                let path = item
                    .get("path")
                    .and_then(|v| serde_json::from_value::<Option<PathBuf>>(v.clone()).ok());
                let variants = item
                    .get("variants")
                    .and_then(|v| serde_json::from_value::<Vec<VariationData>>(v.clone()).ok());
                if let (Some(path), Some(variants)) = (path, variants) {
                    let font = Font::new(path, variants, self.hit_counter.clone());
                    let key = font.first_key();
                    self.fonts.insert(key, font);
                }
            }
        }
    }