xref: /wasmtime-44.0.1/crates/c-api/src/engine.rs (revision 6ef09359)
1 use crate::wasm_config_t;
2 use wasmtime::{Engine, HostRef};
3 
4 #[repr(C)]
5 #[derive(Clone)]
6 pub struct wasm_engine_t {
7     pub(crate) engine: HostRef<Engine>,
8 }
9 
10 wasmtime_c_api_macros::declare_own!(wasm_engine_t);
11 
12 #[no_mangle]
13 pub extern "C" fn wasm_engine_new() -> Box<wasm_engine_t> {
14     Box::new(wasm_engine_t {
15         engine: HostRef::new(Engine::default()),
16     })
17 }
18 
19 #[no_mangle]
20 pub extern "C" fn wasm_engine_new_with_config(c: Box<wasm_config_t>) -> Box<wasm_engine_t> {
21     let config = c.config;
22     Box::new(wasm_engine_t {
23         engine: HostRef::new(Engine::new(&config)),
24     })
25 }
26