Skip to content

Metode Export Preview

Metode export memungkinkan Anda untuk mengekstrak fungsi atau logika spesifik yang terdaftar di dalam lingkungan VM, dan mengeksposnya ke aplikasi host Anda. Ini secara efektif menjembatani kesenjangan antara VM dan aplikasi host Anda.

Menggunakan TypeScript

Untuk TypeScript, metode export menyediakan cara mudah untuk mengambil dan memanggil fungsi yang didefinisikan di dalam VM. Dengan mengekspor fungsi, Anda dapat memperlakukan logika sisi VM sebagai kode asli, sehingga menyederhanakan proses.

ts
const raw = [
  ['jump', 7],
  ['func', 'add', 2, 2, 6, 'a', 'b'],
  ['get', 'a'],
  ['get', 'b'],
  ['add', 'int'],
  ['return'],
  ['stop'],
  ['export', 'add'],
];
const optimized = tools.optimizeBytecode(raw);
vm.load(optimized);
const addFunc = vm.export('add');
console.log(addFunc.call(5, 6));
ts
const raw = [
  ['val', 'score'],
  ['push', '2'],
  ['set', 'score'],
  ['export', 'score'],
];
const optimized = tools.optimizeBytecode(raw);
vm.load(optimized);
const scoreVar = vm.export('score');
console.log(scoreVar.call());

Menggunakan Rust

Dalam Rust, metode export digunakan untuk memetakan fungsi sisi VM ke antarmuka yang dapat dipanggil oleh Rust. Mekanisme ini memungkinkan Anda untuk memanfaatkan hasil eksekusi VM secara langsung di dalam aplikasi Rust utama Anda.

rust
let raw = r#"[
  ["jump", 7],
  ["func", "add", 2, 2, 6, "a", "b"],
  ["get", "a"],
  ["get", "b"],
  ["add", "int"],
  ["return"],
  ["stop"],
  ["export", "add"]
]"#;
let optimized = tools.optimize_bytecode(raw);
vm.load(optimized);
let mut add_func = vm.export("add".to_string());
println!("{:?}", add_func.call(&mut vm, vec![5.into(), 6.into()]));
rust
let raw = r#"[
  ["val", "score"],
  ["push", "2"],
  ["set", "score"],
  ["export", "score"]
]"#;
let optimized = tools.optimize_bytecode(raw);
vm.load(optimized);
let mut score_variable = vm.export("score".to_string());
println!("{:?}", score_variable.call(&mut vm, vec![]));

INFO

Kapabilitas yang Dibutuhkan: Control