def server.run
bend-kit-camber@0.15.0.1 · camber.bend:1224
import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base
import bend-kit-http@0.38.1.1/http.bend as Http
import bend-kit-http@0.38.1.1/completion.bend as TransportCompletion
import bend-kit-camber@0.15.0.1/notices.bend as Notices
1224def server.run(~A: Data, ~S: Type, ~K: Data, ~H: Data, ~E: Data,
1225 ~done: TransportCompletion.Completion<ApplicationReport<H>> -> IO(Unit),
1226 ~observe: U32 -> TransportCompletion.Outcome -> IO(Unit),
1227 ~notify: K -> Policy<H> -> Notices.Notice -> IO(Result<&2, &2, E, Unit>),
1228 ~report: K -> E -> IO(Unit), ~access: K -> Notices.Access,
1229 server: Server<A, S, K, H>
1230) -> IO(ServerExit<A, S, K, H>):
1231 Server{transport, owner} = server
1232 do IO<ServerExit<A, S, K, H>>:
1233 exited : Http.ServerExit <- Http.server.run(~ServingContext<A, S, K, H>,
1234 ~(context => req => server.handle(~A, ~S, ~K, ~H,
1235 ~(completion => server.completed(~K, ~H, ~E, ~notify, ~report, ~access, ~done, completion)), context, req)),
1236 ~(context => status => outcome => observe(status, outcome)), transport)
1237 closed : OwnerClose<S, Application<A, K, Policy<H>>, BufferedRequest, Unit, ApplicationReport<H>> <- close(S, Application<A, K, Policy<H>>, BufferedRequest, Unit, ApplicationReport<H>, owner)
1238 return ServerExit{exited, closed}