def dispatch.application
bend-kit-camber@0.15.0.1 · camber.bend:903
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-router@0.2.0.0/router.bend as Router
903def dispatch.application(~A: Data, ~S: Type, ~K: Data, ~E: Data, ~H: Data,
904 ~before_hook: H -> S -> K -> Metadata -> IO(Step<S, E>),
905 ~after_hook: H -> S -> K -> Http.Res -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
906 ~run: A -> S -> K -> Match<Policy<H>> -> Http.Req -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
907 ~mapper: S -> K -> Error<E> -> IO(S & Result<&2, &1, Error<E>, Http.Res>),
908 app: Application<A, K, Policy<H>>, state: S, req: Http.Req
909) -> IO(Completion<S, H>):
910 Application{table, +config, root, groups} = app
911 Http.Req{+method, +path, +headers, body} = req
912 +meta = {Metadata{method, path, headers} : Metadata}
913 do IO<Completion<S, H>>:
914 completion : Completion<S, H> <- scopes(~S, ~K, ~E, ~H, ~before_hook, ~after_hook, ~mapper, [root], state, config, meta, Nil{}, body,
915 s => entered => b => resolved(~A, ~S, ~K, ~E, ~H, ~before_hook, ~after_hook, ~run, ~mapper,
916 Router.resolve(~Endpoint<A, Policy<H>>, table, method, path), groups, s, config, meta, entered, b))
917 finish(~S, ~K, ~E, ~H, ~mapper, config, completion)