factorio-codegen 0.2.1

Lua code generator for the factorio-rs Rust-to-Lua Factorio mod toolchain
Documentation
use std::env;
use std::fs;
use std::path::PathBuf;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let out_dir = PathBuf::from(env::var("OUT_DIR")?);
    let generated = factorio_api_gen::generate_from_bundled_api()?;
    let path = out_dir.join("attribute_setters.rs");
    fs::write(
        &path,
        format!(
            "// @generated by factorio-codegen build.rs\n{}\n",
            generated.attribute_setters
        ),
    )?;

    let type_map = factorio_api_gen::generate_prototype_type_map_from_bundled()?;
    fs::write(
        out_dir.join("prototype_type_map.rs"),
        format!("// @generated by factorio-codegen build.rs\n{type_map}\n"),
    )?;

    println!("cargo:rerun-if-changed=../factorio-api-gen/api/runtime-api.json");
    println!("cargo:rerun-if-changed=../factorio-api-gen/api/prototype-api.json");
    println!("cargo:rerun-if-changed=../factorio-api-gen/src");
    Ok(())
}