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

1from ..intrinsics import _clamp, _load 

2import ctypes 

3from dataclasses import dataclass 

4from enum import Flag, auto 

5from typing import Tuple 

6import wasmtime 

7 

8from typing import TYPE_CHECKING 

9if TYPE_CHECKING: 

10 from .. import Root 

11 

12class Flag1(Flag): 

13 A = auto() 

14 B = auto() 

15 

16class Flag2(Flag): 

17 A = auto() 

18 B = auto() 

19 C = auto() 

20 

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() 

30 

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() 

48 

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() 

82 

83@dataclass 

84class R1: 

85 a: int 

86 b: Flag1 

87 

88class E: 

89 component: 'Root' 

90 

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 

138