A mix of https://github.com/luizirber/ukhs/blob/master/bbhash-sys/ffi.cpp and rust-lang/rust-bindgen#1208 should be enough. Ideally it would be better to have exceptions never cross thru a C call (wrap in a try/catch block, and return an error code?), but I can use this ideas from the links to wrap all functions that do throw exceptions and expose them to Rust.
(Punted from #3)