use std::fs;
use std::fs::File;
use std::io::Write;
fn main() {
println!("cargo:rerun-if-changed=stdlib/");
let mut local_stl_file = File::create("src/interned_stdlib.rs").unwrap();
local_stl_file
.write_all(
"//! auto-generated by build.rs
use std::collections::HashMap;
use std::sync::LazyLock;
pub static INTERNED_STL: LazyLock<HashMap<&str, &str>> = LazyLock::new(|| HashMap::from(["
.as_bytes(),
)
.unwrap();
for entry in fs::read_dir("stdlib").unwrap() {
let entry = entry.unwrap();
let ty = entry.file_type().unwrap();
let path = entry.path();
if ty.is_file() {
local_stl_file
.write_all(
format!(
r#"("{}", include_str!("../{}")),"#,
path.file_stem().unwrap().to_str().unwrap(),
path.display()
)
.as_bytes(),
)
.unwrap()
}
}
local_stl_file.write_all("]));\n".as_bytes()).unwrap();
}