//! SDK plugin linked to a WASI C function. unsafe extern "C" { fn c_add(a: i32, b: i32) -> i32; } fn add(a: i32, b: i32) -> i32 { unsafe { c_add(a, b) } } struct Plugin; #[sausage_plugin::rpc] impl Plugin { /// Add two fixed numbers through C. fn sum(&self) -> sausage_plugin::Result { Ok(add(2, 3)) } } fn main() { sausage_plugin::run(Plugin); } #[cfg(test)] mod tests { #[test] fn c_code_runs_under_wasi() { assert_eq!(super::add(2, 3), 5); } }