pub fn load(family: Option<&str>) -> Option<fontdue::Font> {
let mut db = fontdb::Database::new();
db.load_system_fonts();
let named;
let families: &[fontdb::Family] = match family {
Some(name) => {
named = [fontdb::Family::Name(name), fontdb::Family::SansSerif];
&named
}
None => &[fontdb::Family::SansSerif],
};
let query = fontdb::Query {
families,
..fontdb::Query::default()
};
let id = db.query(&query)?;
db.with_face_data(id, |data, index| {
let settings = fontdue::FontSettings {
collection_index: index,
..fontdue::FontSettings::default()
};
fontdue::Font::from_bytes(data, settings).ok()
})
.flatten()
}