def accepted.socket

gralha-http-server@0.1.0.0 · server.bend:117

import gralha-http-server@0.1.0.0/server.bend as Server
import Base
import gralha-http-core@0.1.0.0/http.bend as Http

117def accepted.socket(~S: Type, ~reply: Socket -> Http.Request -> S -> IO(S),
118  got: Listener & Result<&1, &1, U32 & String, Socket>, state: S, +max: U32) -> IO(Listener & S):
119  (listener, result) = got
120  match result:
121    case Fail{err}:
122      IO.pure(Listener & S, (listener, state))
123    case Done{socket}:
124      do IO<Listener & S>:
125        request : Socket & Maybe<&2, Http.Request> <- read(socket, max)
126        next : S <- answer.socket(~S, ~reply, request, state)
127        return (listener, next)

Uses (14)

Used by (1)