def server.response
bend-kit-camber@0.15.0.1 · camber.bend:1080
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-time@0.3.0.0/time.bend as Time
1080def server.response(~K: Data, ~H: Data,
1081 ~done: TransportCompletion.Completion<NoticePayload<K, H>> -> IO(Unit),
1082 config: K, started: Time.Duration, outcome: Outcome<Unit, ApplicationReport<H>>, +body: Chan(Http.Body), +response: Chan(Http.Res)
1083) -> IO(Http.Reply):
1084 match outcome:
1085 case Success{report}:
1086 do IO<Http.Reply>:
1087 result : Http.Res <- receive(Http.Res, response)
1088 Chan.close(Http.Body, body)
1089 Chan.close(Http.Res, response)
1090 return Http.reply.complete(~NoticePayload<K, H>, ~done, NoticePayload{config, started, report}, result)
1091 case _:
1092 do IO<Http.Reply>:
1093
1094
1095 discarded : Http.Body <- receive(Http.Body, body)
1096 Chan.close(Http.Body, body)
1097 Chan.close(Http.Res, response)
1098 return Http.reply.complete(~NoticePayload<K, H>, ~done, NoticePayload{config, started, CapacityRejected{}},
1099 Http.Res{503, Http.set(Http.empty(), "connection", "close"), Http.from_string("")})