vzense-sys 0.3.1

Rust abstraction layer for the Vzense SDK C library
Documentation
fn main() {
    #[cfg(feature = "run-bindgen")]
    {
        // create bindings for two APIs
        let headers = ["include/Vzense_api_560.h", "include/Scepter_api.h"];
        let binding_file_names = ["dcam560.rs", "scepter.rs"];

        for i in 0..2 {
            let bindings = bindgen::Builder::default()
                // The input header we would like to generate bindings for.
                .header(headers[i])
                // necessary for 2024 edition
                .wrap_unsafe_ops(true)
                // derive defaults if possible
                .derive_default(true)
                // Tell cargo to invalidate the built crate whenever any of the
                // included header files changed.
                .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
                // Finish the builder and generate the bindings.
                .generate()
                .expect("Unable to generate bindings");

            let bindings_dir = std::env::current_dir().unwrap().join("bindings");
            let bindings_file = bindings_dir.join(binding_file_names[i]);
            bindings
                .write_to_file(bindings_file)
                .expect("Couldn't write bindings!");
        }
    }
}