use std::fs; use anyhow::Context; use proc_macro2::{Ident, Span}; mod block; pub fn main() -> anyhow::Result<()> { // If any of the files in the data directory are modified, rerun the build // script. for entry in fs::read_dir("data")? { let entry = entry?; if entry.metadata()?.is_file() { let buf = entry.path(); let path = buf.to_str().context("bad file name")?; println!("cargo:rerun-if-changed={path}"); } } block::build()?; Ok(()) } fn ident(s: impl AsRef) -> Ident { let s = s.as_ref().trim(); if s.starts_with(char::is_numeric) { Ident::new(&format!("_{s}"), Span::call_site()) } else { Ident::new(s, Span::call_site()) } }