Use rustc's macro system to generate the bindings