def Ws.step
bend-kube-runtime@0.2.0.0 · src/ws.bend:161
import bend-kube-runtime@0.2.0.0/src/ws.bend as Ws
import Base
161
162def Ws.step(st: WSt, +b: U32) -> Stepped:
163 match st:
164 case WHead{}:
165 Stepped{WLen{U32.is_ge(b, 128), U32.and(b, 15)}, None{}}
166 case WLen{+fin, +op}:
167 Ws.len7(fin, op, U32.is_ge(b, 128), U32.and(b, 127), U32.is_eq(U32.and(b, 127), 126),
168 U32.is_eq(U32.and(b, 127), 127))
169 case WExt{+fin, +op, masked, +need, +len}:
170 Ws.ext(fin, op, masked, U32.sub(need, 1), U32.add(U32.mul(len, 256), b),
171 U32.is_eq(need, 1))
172 case WKey{+fin, +op, +len, +need, +key}:
173 Ws.key(fin, op, len, U32.sub(need, 1), List.append(&2, U32, key, [b]), U32.is_eq(need, 1))
174 case WPay{+fin, +op, +left, +key, +acc}:
175 Ws.pay(fin, op, U32.sub(left, 1), Ws.rotate(key), Con{Ws.unmask(key, b), acc},
176 U32.is_eq(left, 1))
177 case WBad{why}:
178 Stepped{WBad{why}, None{}}