Coverage for tests/bindgen/generated/export_resources/exports/my_interface_name.py: 76%

50 statements  

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

1from ..intrinsics import _decode_utf8, _encode_utf8, _load 

2import ctypes 

3from typing import Protocol, Type 

4import wasmtime 

5 

6from typing import TYPE_CHECKING 

7if TYPE_CHECKING: 

8 from .. import Root 

9 

10class DemoResourceClass(Protocol): 

11 def __init__(self, caller: wasmtime.Store, name: str) -> None: ... 

12 def greet(self, caller: wasmtime.Store, greeting: str) -> str: ... 

13 

14 

15class MyInterfaceName: 

16 component: 'Root' 

17 

18 def __init__(self, component: 'Root') -> None: 

19 self.component = component 

20 self.DemoResourceClass = _create_demo_resource_class(component) 

21 def interface_func(self, caller: wasmtime.Store, foo: str) -> str: 

22 ptr, len0 = _encode_utf8(foo, self.component._realloc1, self.component._core_memory0, caller) 

23 ret = self.component.lift_callee3(caller, ptr, len0) 

24 assert(isinstance(ret, int)) 

25 load = _load(ctypes.c_int32, self.component._core_memory0, caller, ret, 0) 

26 load1 = _load(ctypes.c_int32, self.component._core_memory0, caller, ret, 4) 

27 ptr2 = load 

28 len3 = load1 

29 list = _decode_utf8(self.component._core_memory0, caller, ptr2, len3) 

30 tmp = list 

31 self.component._post_return2(caller, ret) 

32 return tmp 

33 

34 

35def _create_demo_resource_class(component: 'Root') -> Type[DemoResourceClass]: 

36 class _DemoResourceClass: 

37 def __init__(self, caller: wasmtime.Store, name: str) -> None: 

38 self.component = component 

39 ptr, len0 = _encode_utf8(name, self.component._realloc1, self.component._core_memory0, caller) 

40 ret = self.component.lift_callee1(caller, ptr, len0) 

41 assert(isinstance(ret, int)) 

42 entry = self.component._handle_remove_0(ret) 

43 self._rep = entry[0] 

44 def greet(self, caller: wasmtime.Store, greeting: str) -> str: 

45 rep = self._rep 

46 ptr, len0 = _encode_utf8(greeting, self.component._realloc1, self.component._core_memory0, caller) 

47 ret = self.component.lift_callee2(caller, rep, ptr, len0) 

48 assert(isinstance(ret, int)) 

49 load = _load(ctypes.c_int32, self.component._core_memory0, caller, ret, 0) 

50 load1 = _load(ctypes.c_int32, self.component._core_memory0, caller, ret, 4) 

51 ptr2 = load 

52 len3 = load1 

53 list = _decode_utf8(self.component._core_memory0, caller, ptr2, len3) 

54 tmp = list 

55 self.component._post_return1(caller, ret) 

56 return tmp 

57 return _DemoResourceClass