def shifted

bendvy-ecs-core@0.1.0.4 · ordinary_condition_declaration.bend:39

import bendvy-ecs-core@0.1.0.4/ordinary_condition_declaration.bend as OrdinaryConditionDeclaration
import Base
import bendvy-ecs-core@0.1.0.4/schedule.bend as Sch
import bendvy-ecs-core@0.1.0.4/schedule_provision.bend as SP

39def shifted(~S:Data,plan:SP.Plan<S>,+offset:U32) -> SP.Plan<S>:
40  match plan:
41    case SP.Empty{}:SP.Empty{}
42    case SP.Entry{Sch.System{id,slot},requirements}:SP.Entry{Sch.System{id,(slot + offset : U32)},requirements}
43    case SP.Entry{Sch.Phase{name},requirements}:SP.Entry{Sch.Phase{name},requirements}
44    case SP.Entry{Sch.Barrier{},requirements}:SP.Entry{Sch.Barrier{},requirements}
45    case SP.Sequence{left,right}:SP.Sequence{shifted(~S,left,offset),shifted(~S,right,offset)}

Uses (4)

Used by (1)