def resource_record

bendvy-ecs-core@0.1.0.4 · restore_storage.bend:40

import bendvy-ecs-core@0.1.0.4/restore_storage.bend as RestoreStorage
import Base
import bendvy-ecs-core@0.1.0.4/restore_data.bend as R
import bendvy-ecs-core@0.1.0.4/restore_leaf.bend as Stage

40def resource_record(~Context:Type,~I:Type,~P:Type,record:Stage.Record<I,P>,state:Stage.State<Context,I,P>,previous:P) -> P & Stage.State<Context,I,P>:
41  match record state:
42    case Stage.Record{R.Resource{},owner,undo} Stage.State{context,records,returned,removed,applied}:(owner,Stage.State{context,records,returned,previous <> removed,Stage.Applied{R.Resource{},undo} <> applied})
43    case record Stage.State{context,records,returned,removed,applied}:(previous,Stage.State{context,record <> records,returned,removed,applied})

Uses (7)

Used by (1)