def server.read.go
emerging-ezhttp@0.21.0.0 · src/server.bend:147
import emerging-ezhttp@0.21.0.0/src/server.bend as Server
import Base
import bend-kit-wire@0.4.6.1/wire.bend as W
import emerging-ezhttp@0.21.0.0/src/http.bend as Http
import emerging-ezhttp@0.21.0.0/src/step.bend as Step
147
148
149def server.read.go(fuel: Nat, sock: Socket, +ps: List<&2, String>, +have: Nat,
150 +need: Maybe<&2, Nat>) -> IO(Socket & Step.Got<Http.Request>):
151 match fuel:
152 case 0n:
153 server.read.done(sock, ps)
154 case 1n+f:
155 IO.bind(Socket & Result<&1, &1, U32 & String, String>,
156 Socket & Step.Got<Http.Request>,
157 W.recv(sock, server.max(), 0),
158 r => server.read.got(ps, have, need, r,
159 s => p => h => m => server.read.go(f, s, p, h, m)))