def queue

bendvy-ecs-core@0.1.0.4 · ordinary_app_machine.bend:44

import bendvy-ecs-core@0.1.0.4/ordinary_app_machine.bend as OrdinaryAppMachine
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/ordinary_machine_declaration.bend as OD
import bendvy-ecs-core@0.1.0.4/ordinary_machine_operations.bend as Ops
import bendvy-ecs-core@0.1.0.4/machine.bend as M
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/commands.bend as Cmd

44# Operational queue and debug current grant are generated from the SAME declaration.
45# Queue a machine request through declaration-derived write caps in one Tx, then
46# finish with the supplied outcome. Success retains queued state; failure restores
47# recorded changes. This does not commit a transition or execute handler phases;
48# vocabulary metadata is not a value-membership validation gate.
49def queue(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~take:R -> R & M.Slot<S,K,V>,~put:R -> M.Slot<S,K,V> -> R,~same:V -> V -> Bool,~declaration:OD.Declaration<S,K,V,R,take>,~Error:Data,world:W.World<S,C,R,E>,request:M.QueueInput<V>,outcome:T.Outcome<Error>) -> T.Returned<W.World<S,C,R,E>,Error>:
50  Cmd.tx_finish(~S,~C,~R,~E,~Error,Cap.value_set(~T.Tx<W.World<S,C,R,E>,E>,~M.QueueInput<V>,~M.CurrentView<S,K,V>,~Ops.write(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration),T.begin(~W.World<S,C,R,E>,~E,world),request),outcome)

Uses (14)

Used by (1)