Coverage for wasmtime/_engine.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-02-20 16:25 +0000

1from . import _ffi as ffi 

2from wasmtime import Config, WasmtimeError, Managed 

3from typing import Optional 

4import ctypes 

5 

6 

7class Engine(Managed["ctypes._Pointer[ffi.wasm_engine_t]"]): 

8 

9 def __init__(self, config: Optional[Config] = None): 

10 if config is None: 

11 self._set_ptr(ffi.wasm_engine_new()) 

12 elif not isinstance(config, Config): 

13 raise TypeError("expected Config") 

14 else: 

15 ptr = config._consume() 

16 self._set_ptr(ffi.wasm_engine_new_with_config(ptr)) 

17 

18 def _delete(self, ptr: "ctypes._Pointer[ffi.wasm_engine_t]") -> None: 

19 ffi.wasm_engine_delete(ptr) 

20 

21 def increment_epoch(self) -> None: 

22 ffi.wasmtime_engine_increment_epoch(self.ptr()) 

23 

24 def is_pulley(self) -> bool: 

25 return ffi.wasmtime_engine_is_pulley(self.ptr())