Coverage for tests/codegen/generated/records/exports/e.py: 99%
128 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-02-20 16:25 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-02-20 16:25 +0000
1from ..intrinsics import _clamp, _load
2import ctypes
3from dataclasses import dataclass
4from enum import Flag, auto
5from typing import Tuple
6import wasmtime
8from typing import TYPE_CHECKING
9if TYPE_CHECKING:
10 from .. import Root
12class Flag1(Flag):
13 A = auto()
14 B = auto()
16class Flag2(Flag):
17 A = auto()
18 B = auto()
19 C = auto()
21class Flag8(Flag):
22 A1 = auto()
23 A2 = auto()
24 A3 = auto()
25 A4 = auto()
26 A5 = auto()
27 A6 = auto()
28 A7 = auto()
29 A8 = auto()
31class Flag16(Flag):
32 A1 = auto()
33 A2 = auto()
34 A3 = auto()
35 A4 = auto()
36 A5 = auto()
37 A6 = auto()
38 A7 = auto()
39 A8 = auto()
40 A9 = auto()
41 A10 = auto()
42 A11 = auto()
43 A12 = auto()
44 A13 = auto()
45 A14 = auto()
46 A15 = auto()
47 A16 = auto()
49class Flag32(Flag):
50 A1 = auto()
51 A2 = auto()
52 A3 = auto()
53 A4 = auto()
54 A5 = auto()
55 A6 = auto()
56 A7 = auto()
57 A8 = auto()
58 A9 = auto()
59 A10 = auto()
60 A11 = auto()
61 A12 = auto()
62 A13 = auto()
63 A14 = auto()
64 A15 = auto()
65 A16 = auto()
66 A17 = auto()
67 A18 = auto()
68 A19 = auto()
69 A20 = auto()
70 A21 = auto()
71 A22 = auto()
72 A23 = auto()
73 A24 = auto()
74 A25 = auto()
75 A26 = auto()
76 A27 = auto()
77 A28 = auto()
78 A29 = auto()
79 A30 = auto()
80 A31 = auto()
81 A32 = auto()
83@dataclass
84class R1:
85 a: int
86 b: Flag1
88class E:
89 component: 'Root'
91 def __init__(self, component: 'Root') -> None:
92 self.component = component
93 def multiple_results(self, caller: wasmtime.Store) -> Tuple[int, int]:
94 ret = self.component.lift_callee0(caller)
95 assert(isinstance(ret, int))
96 load = _load(ctypes.c_uint8, self.component._core_memory0, caller, ret, 0)
97 load0 = _load(ctypes.c_uint16, self.component._core_memory0, caller, ret, 2)
98 tmp = (_clamp(load, 0, 255), _clamp(load0, 0, 65535),)
99 return tmp
100 def roundtrip_flag2(self, caller: wasmtime.Store, a: Flag2) -> Flag2:
101 ret = self.component.lift_callee1(caller, (a).value)
102 assert(isinstance(ret, int))
103 return Flag2(ret)
104 def roundtrip_flag8(self, caller: wasmtime.Store, a: Flag8) -> Flag8:
105 ret = self.component.lift_callee2(caller, (a).value)
106 assert(isinstance(ret, int))
107 return Flag8(ret)
108 def roundtrip_flag1(self, caller: wasmtime.Store, a: Flag1) -> Flag1:
109 ret = self.component.lift_callee3(caller, (a).value)
110 assert(isinstance(ret, int))
111 return Flag1(ret)
112 def roundtrip_flag16(self, caller: wasmtime.Store, a: Flag16) -> Flag16:
113 ret = self.component.lift_callee4(caller, (a).value)
114 assert(isinstance(ret, int))
115 return Flag16(ret)
116 def roundtrip_r1(self, caller: wasmtime.Store, a: R1) -> R1:
117 record = a
118 field = record.a
119 field0 = record.b
120 ret = self.component.lift_callee5(caller, _clamp(field, 0, 255), (field0).value)
121 assert(isinstance(ret, int))
122 load = _load(ctypes.c_uint8, self.component._core_memory0, caller, ret, 0)
123 load1 = _load(ctypes.c_uint8, self.component._core_memory0, caller, ret, 1)
124 tmp = R1(_clamp(load, 0, 255), Flag1(load1))
125 return tmp
126 def roundtrip_flag32(self, caller: wasmtime.Store, a: Flag32) -> Flag32:
127 ret = self.component.lift_callee6(caller, (a).value)
128 assert(isinstance(ret, int))
129 return Flag32(ret)
130 def swap(self, caller: wasmtime.Store, a: Tuple[int, int]) -> Tuple[int, int]:
131 (tuplei,tuplei0,) = a
132 ret = self.component.lift_callee7(caller, _clamp(tuplei, 0, 255), _clamp(tuplei0, 0, 4294967295))
133 assert(isinstance(ret, int))
134 load = _load(ctypes.c_uint8, self.component._core_memory0, caller, ret, 0)
135 load1 = _load(ctypes.c_int32, self.component._core_memory0, caller, ret, 4)
136 tmp = (_clamp(load, 0, 255), load1 & 0xffffffff,)
137 return tmp