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# One byte into the decoder.
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{}}

Uses (18)

Used by (1)