def gz.go
import bend-kit-zlib@0.5.1.0/zlib.bend as Zlibimport Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
697# Each member takes at least 18 bytes, so one step per byte suffices.
698def gz.go(k: Nat, st: Gz) -> Maybe<&1, Bytes.Bytes>:
699 match k:
700 case 0n:
701 None{}
702 case 1n+f:
703 match st:
704 case GzMore{acc, src, +at}:
705 gz.go(f, gz.step(gz.member(src, at), acc))
706 case GzDone{out}:
707 Some{out}
708 case GzBad{}:
709 None{}