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)