use examples_common::get_wasm_module_path;
use hyperlight_wasm::{Result, SandboxBuilder};
fn main() -> Result<()> {
let prometheus_handle = metrics_exporter_prometheus::PrometheusBuilder::new()
.install_recorder()
.expect("Failed to install Prometheus exporter");
for _ in 0..10 {
let host_func = |a: i32| {
println!("host_func called with {}", a);
a + 1
};
let mut wasm_sandbox = SandboxBuilder::new()
.with_guest_input_buffer_size(1000000)
.build()?;
wasm_sandbox.register("TestHostFunc", host_func)?;
let wasm_sandbox = wasm_sandbox.load_runtime()?;
let mut loaded_wasm_sandbox =
wasm_sandbox.load_module(get_wasm_module_path("rust_wasm_samples.aot")?)?;
loaded_wasm_sandbox
.call_guest_function::<i32>("add", (5i32, 10i32))
.unwrap();
}
let payload = prometheus_handle.render();
println!("Prometheus metrics:\n{}", payload);
Ok(())
}