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# The pending swap tuple is already fetched; zero fuel still moves that owner.
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{}))

Uses (9)

Used by (1)