Slide 13
Slide 13 text
Demo (1/3)
実は Component Model サポートの PoC はできている!
Scala から Rust のコードを実行してみよう
#[allow(warnings)]
mod bindings;
use crate::bindings::exports::tanishiking::test::test::Guest;
use ferris_says::say;
struct Component;
impl Guest for Component {
fn ferris_say(content: String, width: u32) -> String {
let mut buf = Vec::new();
say(content.as_str(), width.try_into().unwrap(), &mut
buf).unwrap();
return String::from_utf8(buf).unwrap();
}
}
bindings::export!(Component with_types_in bindings);
package tanishiking:test@0.0.1;
world socket { // Scala
import test;
import wasi:cli/stdout@0.2.0;
export wasi:cli/run@0.2.0;
}
world plug { // Rust
export test;
}
interface test {
ferris-say: func(content: string,
width: u32) -> string;
}
WIT IDL
呼び出されるRust code (読まなくていいです)