Expand description
Rust modules support for Wilton JavaScript runtime
Usage example:
// configure Cargo to build a shared library
//[lib]
//crate-type = ["dylib"]
// in lib.rs, import serde and wilton_rusty
//#[macro_use]
//extern crate serde_derive;
//extern crate wilton_rusty;
// ...
// declare input/output structs
#[derive(Deserialize)]
struct MyIn { }
#[derive(Serialize)]
struct MyOut { }
// write a function that does some work
fn hello(obj: MyIn) -> MyOut { }
// register that function inside the `wilton_module_init` function,
// that will be called by Wilton during the Rust module load
#[no_mangle]
pub extern "C" fn wilton_module_init() -> *mut std::os::raw::c_char {
// register a call, error checking omitted
wilton_rusty::register_wiltocall("hello", |obj: MyIn| { hello(obj) });
// return success status to Wilton
wilton_rusty::create_wilton_error(None)
}
See an example how to load and use Rust library from JavaScript.
Functionsยง
- Create an error message, that can be passed back to Wilton
- Registers a closure, that can be called from JavaScript
- Call JavaScript function