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

Uses (10)

Used by (1)