Runner.ask: def of bend-kit-runner@0.13.0.1
Import: import bend-kit-runner@0.13.0.1/runner.bend as Runner
Lines 1164-1169 of bend-kit-runner@0.13.0.1/runner.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-runner@0.13.0.1/runner.bend&start_line=1164&end_line=1169
import Base
# Sends m, built with a new reply channel, on the inbox and waits for the reply.
def ask(-A: Data, -X: Type, +ib: Chan(Msg), m: Chan(Out(X)) -> Msg) -> IO(Out(X)):
do IO:
+rep : Chan(Out(X)) <- Chan.new(Out(X), 1)
x : Result<&1, &1, Msg, Unit> <- Chan.send(Msg, ib, m(rep))
ask.sent(A, X, x, rep)
Uses (10):
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Chan
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Chan.new
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Chan.send
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Result
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Unit
https://jend.leeeet.dev/definition.txt?path=bend-kit-runner@0.13.0.1/runner.bend&name=Msg
https://jend.leeeet.dev/definition.txt?path=bend-kit-runner@0.13.0.1/runner.bend&name=Out
https://jend.leeeet.dev/definition.txt?path=bend-kit-runner@0.13.0.1/runner.bend&name=ask.sent