def server.stream.go

emerging-ezhttp@0.21.0.0 · src/server.bend:256

import emerging-ezhttp@0.21.0.0/src/server.bend as Server
import Base
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
import emerging-ezhttp@0.21.0.0/src/http.bend as Http
import emerging-ezhttp@0.21.0.0/src/step.bend as Step

256# every chunk the channel gives, until it is closed
257def server.stream.go(fuel: Nat, sock: Socket, +ch: Chan(Bytes.Bytes))
258  -> IO(Unit):
259  match fuel:
260    case 0n:
261      IO.bind(Socket & Step.Got<Unit>, Unit,
262        server.send.text(sock, Http.chunk.end()), server.close)
263    case 1n+f:
264      IO.bind(Maybe<&1, Bytes.Bytes>, Unit, Chan.recv(Bytes.Bytes, ch),
265        m => server.chunk.got(sock, m, s => server.stream.go(f, s, ch)))

Uses (15)

Used by (1)