restore_transient.bend
bendvy-ecs-core@0.1.0.1 · 22 lines · 0 definitions
1import Base
2import bendvy-ecs-core@0.1.0.1/change_tick.bend as Tick
3import bendvy-ecs-core@0.1.0.1/restore_data.bend as R
4import bendvy-ecs-core@0.1.0.1/snapshot_leaf.bend as Leaf
5import bendvy-ecs-core@0.1.0.1/ordinary_declaration.bend as Identity
6import bendvy-ecs-core@0.1.0.1/persistence_declaration.bend as Decl
7import bendvy-ecs-core@0.1.0.1/column.bend as Col
8import bendvy-ecs-core@0.1.0.1/world.bend as W
9import bendvy-ecs-core@0.1.0.1/decode_data.bend as D
10
11type State<P:Type> is Type:State{removed:List<P>}
12def stage(~State:Type,~Custom:Data,state:State,position:R.Position,field:D.Field) -> State & R.Dispatch<Custom>:
13 (state,R.Unhandled{})
14def release(~State:Type,state:State) -> State:state
15def insert(~S:Data,~P:Type,~identity:Identity.Declaration<S,P>,owner:Leaf.TransientComponent<S,P,identity>,unit:Unit,state:State<P>,bindings:List<&2,R.Binding<S>>,tick:Tick.Tick) -> (Leaf.TransientComponent<S,P,identity> & Unit) & State<P>:
16 ((owner,unit),state)
17def resource_insert(~S:Data,~P:Type,~identity:Identity.Declaration<S,P>,unit:Unit,owner:Leaf.TransientResource<S,P,identity>,state:Unit,bindings:List<&2,R.Binding<S>>,tick:Tick.Tick) -> (Unit & Leaf.TransientResource<S,P,identity>) & Unit:
18 ((unit,owner),state)
19def commit(~P:Type,state:State<P>) -> State<P>:
20 State{[]}
21def take_recovery(~State:Type,state:State) -> State & Unit:
22 (state,Unit{})