Coverage for tests/codegen/generated/keywords/exports/for_.py: 96%
55 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
2from dataclasses import dataclass
3from typing import Union
4import wasmtime
6from typing import TYPE_CHECKING
7if TYPE_CHECKING:
8 from .. import Root
10@dataclass
11class None_Break:
12 value: int
14@dataclass
15class None_Class:
16 value: int
18@dataclass
19class None_True_:
20 value: int
22None_ = Union[None_Break, None_Class, None_True_]
24@dataclass
25class True_:
26 else_: int
27 not_: int
28 except_: int
30class For:
31 component: 'Root'
33 def __init__(self, component: 'Root') -> None:
34 self.component = component
35 def lambda_(self, caller: wasmtime.Store, def_: True_) -> int:
36 record = def_
37 field = record.else_
38 field0 = record.not_
39 field1 = record.except_
40 ret = self.component.lift_callee0(caller, _clamp(field, 0, 255), _clamp(field0, 0, 255), _clamp(field1, 0, 255))
41 assert(isinstance(ret, int))
42 return ret & 0xffffffff
43 def await_(self, caller: wasmtime.Store) -> int:
44 ret = self.component.lift_callee1(caller)
45 assert(isinstance(ret, int))
46 return _clamp(ret, 0, 255)
47 def as_(self, caller: wasmtime.Store, import_: None_) -> int:
48 if isinstance(import_, None_Break):
49 payload = import_.value
50 variant = 0
51 variant2 = _clamp(payload, -2147483648, 2147483647)
52 elif isinstance(import_, None_Class):
53 payload0 = import_.value
54 variant = 1
55 variant2 = _clamp(payload0, -9223372036854775808, 9223372036854775807)
56 elif isinstance(import_, None_True_):
57 payload1 = import_.value
58 variant = 2
59 variant2 = _clamp(payload1, -9223372036854775808, 9223372036854775807)
60 else:
61 raise TypeError("invalid variant specified for None_")
62 ret = self.component.lift_callee2(caller, variant, variant2)
63 assert(isinstance(ret, int))
64 return ret