def project

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

import bendvy-ecs-core@0.1.0.4/restored_row.bend as RestoredRow
import Base

28def project(~S:Data,~C:Type,~V:Data,~project:C -> C & V,cell:Cell<S,C>) -> Projected<S,C,V>:
29  match cell:
30    case Taken{id,None{},stamp,dirty,cold}: Projected{Taken{id,None{},stamp,dirty,cold},None{}}
31    case Taken{id,Some{owner},stamp,dirty,cold}: projected_owner(~S,~C,~V,id,stamp,dirty,cold,project(owner))
32    case Untaken{column}: Deferred{Untaken{column}}

Uses (5)

Used by (1)