fn get_root_extension()

in native/src/extension/on_root.rs [81:100]


fn get_root_extension(root: &Root) -> Result<Option<FBMaterialVariantRootExtension>> {
    if let Some(extensions) = &root.extensions {
        if let Some(ref boxed) = extensions.others.get(KHR_MATERIALS_VARIANTS) {
            let json_string = boxed.to_string();
            let parse: serde_json::Result<FBMaterialVariantRootExtension> =
                serde_json::from_str(&json_string);
            return match parse {
                Ok(parse) => {
                    Ok(Some(parse))
                }
                Err(e) => Err(format!(
                    "Bad JSON in KHR_materials_variants extension: {}; json = {}",
                    e.to_string(),
                    json_string,
                )),
            };
        }
    }
    Ok(None)
}