def insert

bendvy-ecs-core@0.1.0.4 · restore_product.bend:28

import bendvy-ecs-core@0.1.0.4/restore_product.bend as RestoreProduct
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/restore_data.bend as R
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product

28def insert(~S:Data,~LC:Type,~LR:Type,~RC:Type,~RR:Type,~L:Type,~Right:Type,~insertLeft:LC -> LR -> L -> List<&2,R.Binding<S>> -> Tick.Tick -> (LC & LR) & L,~insertRight:RC -> RR -> Right -> List<&2,R.Binding<S>> -> Tick.Tick -> (RC & RR) & Right,owner:Product.Owner<LC,RC>,resource:Product.Owner<LR,RR>,state:Product.Owner<L,Right>,+bindings:List<&2,R.Binding<S>>,+tick:Tick.Tick) -> (Product.Owner<LC,RC> & Product.Owner<LR,RR>) & Product.Owner<L,Right>:
29  match owner resource state:
30    case Product.Owner{left,right} Product.Owner{leftResource,rightResource} Product.Owner{stateLeft,stateRight}:insert_next(~S,~LC,~LR,~RC,~RR,~L,~Right,~insertRight,right,rightResource,stateRight,bindings,tick,insertLeft(left,leftResource,stateLeft,bindings,tick))

Uses (6)

Used by (1)