def tm.int.pick
bend-osdev-acpi@0.1.1.0 · aml_term.bend:48
import bend-osdev-acpi@0.1.1.0/aml_term.bend as AmlTerm
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
48def tm.int.pick(z: Bool, o: Bool, m: Bool, b8: Bool, b16: Bool, b32: Bool, +v: W.W64) -> B.Octets:
49 match z:
50 case True{}:
51 tm.b([0])
52 case False{}:
53 match o:
54 case True{}:
55 tm.b([1])
56 case False{}:
57 match m:
58 case True{}:
59 tm.b([255])
60 case False{}:
61 match b8:
62 case True{}:
63 tm.b([10, W.W64.lo(v)])
64 case False{}:
65 match b16:
66 case True{}:
67 B.Octets.append(tm.b([11]), B.Octets.le16(W.W64.lo(v)))
68 case False{}:
69 match b32:
70 case True{}:
71 B.Octets.append(tm.b([12]), B.Octets.le32(W.W64.lo(v)))
72 case False{}:
73 B.Octets.append(tm.b([14]), B.Octets.le64(v))