Skip to main content

dawn_codegen/
lib.rs

1pub mod api_model;
2pub mod emitter;
3pub mod parser;
4pub mod visitor;
5
6pub use api_model::ApiModel;
7pub use emitter::{generate_strings, generate_strings_with_ffi_consts, GeneratedFiles};
8pub use parser::DawnJsonParser;
9
10use std::path::Path;
11
12pub fn generate_ffi_string(
13    api_header: &Path,
14    clang_args: &[String],
15) -> Result<String, Box<dyn std::error::Error>> {
16    let mut builder = bindgen::Builder::default().header(api_header.to_string_lossy());
17    for arg in clang_args {
18        builder = builder.clang_arg(arg);
19    }
20    let bindings = builder
21        .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
22        .generate()?;
23    Ok(bindings.to_string())
24}