def evacuate_pending
bendvy-ecs-core@0.1.0.3 · column.bend:214
import bendvy-ecs-core@0.1.0.3/column.bend as Column
import Base
import owner_handoff.bend as H
214
215def evacuate_pending(~S:Data,~C:Type,fuel:Nat,+id:U32,rows:H.PrototypeHandoffRows<S,C>,observed:Array<Maybe<&1,C>> & Maybe<&1,C>) -> Array<Maybe<&1,C>> & H.PrototypeHandoffRows<S,C>:
216 match fuel observed:
217 case 0n, (values,None{}): (values,rows)
218 case 0n, (values,Some{owner}): (values,H.HandoffCon{id,owner,rows})
219 case 1n+rest, (values,None{}):
220 +nextId = U32.sub(id,1)
221 evacuate_pending(~S,~C,rest,nextId,rows,Array.swap(Maybe<&1,C>,values,U32.sub(nextId,1),None{}))
222 case 1n+rest, (values,Some{owner}):
223 +nextId = U32.sub(id,1)
224 evacuate_pending(~S,~C,rest,nextId,H.HandoffCon{id,owner,rows},Array.swap(Maybe<&1,C>,values,U32.sub(nextId,1),None{}))