#!/usr/bin/env rust-script
use std::collections::HashSet;
use std::path::PathBuf;
pub fn main() {
let codepoints = include_str!("./MaterialSymbolsRounded-Regular.codepoints");
let mut names = HashSet::new();
let code: String = codepoints
.split("\n")
.map(str::trim)
.filter_map(|point| {
let split_point: Vec<&str> = point.split(" ").collect();
if split_point.len() > 1 {
let name = split_point[0].to_uppercase();
let addr = split_point[1];
if !names.contains(&name) {
names.insert(name.clone());
Some(format!(
"pub const ICON_{name}: crate::MaterialIcon = crate::MaterialIcon::new(\"\\u{{{addr}}}\");\n"
))
} else {
None
}
} else {
None
}
})
.collect();
let file = PathBuf::try_from(file!()).unwrap();
let icons = file.parent().unwrap().join("src").join("icons.rs");
std::fs::write(icons, code).unwrap();
println!("Generated src/icons.rs");
}