def undo

bendvy-ecs-core@0.1.0.4 · bundle_component_install.bend:25

import bendvy-ecs-core@0.1.0.4/bundle_component_install.bend as BundleComponentInstall
import Base
import entity_key.bend as Key
import world.bend as W
import column.bend as Col
import bundle_install.bend as F

25def undo(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~C:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,C>,~put:Rest -> Col.Column<S,C> -> Store,~project:C -> C & V,recovery:Recovery<S,C>,world:W.World<S,Store,R,E>) -> F.Restore<W.World<S,Store,R,E>,Entry<S,C>,Recovery<S,C>>:
26  match recovery:
27    case Recovery{Entry{W.Handle{+ns,+id},previous},stamp}: undo_checked(~S,~Store,~R,~E,~Rest,~C,~V,~Token,~take,~put,~project,W.Handle{ns,id},Key.index(id),stamp,previous,W.valid(~S,~Store,~R,~E,world,W.Handle{ns,id}))

Uses (10)

Used by (1)