blend-rs 0.3.0

A Rust library to read Blender's .blend files.
Documentation
use std::error::Error;
use std::result::Result::Ok;
use std::env;
use std::process::Command;


fn main() -> Result<(), Box<dyn Error>>{

    let out_dir = env::var_os("OUT_DIR").unwrap();
    let out_dir = format!("{}", out_dir.to_str().unwrap());

    let generated: Vec<(String, String)> = vec![
        #[cfg(feature = "blender3_4")]
        generate("gen/blender3_4.blend", &out_dir),
        #[cfg(feature = "blender3_3")]
        generate("gen/blender3_3.blend", &out_dir),
        #[cfg(feature = "blender3_2")]
        generate("gen/blender3_2.blend", &out_dir),
        #[cfg(feature = "blender2_93")]
        generate("gen/blender2_93.blend", &out_dir),
        #[cfg(feature = "blender2_80x86")]
        generate("gen/blender2_80x86.blend", &out_dir),
        #[cfg(feature = "blender2_80")]
        generate("gen/blender2_80.blend", &out_dir),
        #[cfg(feature = "blender2_79")]
        generate("gen/blender2_79.blend", &out_dir),
    ];

    generated.iter().for_each(|(src, _)| {
        println!("cargo:rerun-if-changed={}", src);
    });

    println!("cargo:rerun-if-changed=build.rs");

    Ok(())
}

fn generate(src: &str, out: &str) -> (String, String) {
    let generated = blend_bindgen_rs::generate(&src, &out);
    Command::new("rustfmt")
        .args(&["--edition", "2021"])
        .arg(format!("{}", &generated))
        .status().unwrap();

    (String::from(src), generated)
}