def projected

bendvy-ecs-core@0.1.0.4 · owned_family.bend:36

import bendvy-ecs-core@0.1.0.4/owned_family.bend as OwnedFamily
import Base
import restored_row.bend as R
import component.bend as C

36def projected(~S:Data,~H:Type,~Rest:Type,~C:Type,~V:Data,~put:Rest -> R.Cell<S,C> -> H,~bridge:H -> H & C.Access<V>,rest:Rest,result:R.Projected<S,C,V>) -> H & C.Access<V>:
37  match result:
38    case R.Projected{cell,None{}}: (put(rest,cell),C.ComponentAbsent{})
39    case R.Projected{cell,Some{value}}: (put(rest,cell),C.Found{value})
40    case R.Deferred{cell}: bridge(put(rest,cell))

Uses (6)

Used by (1)