Fast and ergonomic Rust bindings for ObjC APIs
RustKit is currently under development. Please try it if you want to contribute or provide feedback on the generated bindings.
Clang 8.0 (currently trunk) with a patch is currently required. Build clang and set the LIBCLANG_PATH
environmental variable to the directory that libclang.dylib
is in, which should be in the lib
directory of your clang/llvm build directory.
extern crate rustkit;
use rustkit::NSObject;
fn main() {
let obj = NSObject::new();
let desc = NSObject::description();
let desc = desc.unwrap();
let desclen = desc.length();
let ruststr: String =
(0..desclen).map(|i|
std::char::from_u32(desc.characterAtIndex_(i) as u32).
unwrap()).collect();
println!("NSObject::description(): {}", ruststr);
}