def valid

bendvy-ecs-core@0.1.0.4 · schedule.bend:44

import bendvy-ecs-core@0.1.0.4/schedule.bend as Schedule
import Base

44def valid(steps: List<&2,Step>,+catalog: List<&2,U32>,+seen: List<&2,U32>) -> Bool:
45  match steps:
46    case []: True{}
47    case Phase{_} <> rest: valid(rest,catalog,seen)
48    case Barrier{} <> rest: valid(rest,catalog,seen)
49    case System{+id,_} <> rest: Bool.and(contains(catalog,id),Bool.and(Bool.not(contains(seen,id)),valid(rest,catalog,id <> seen)))

Uses (7)

Used by (3)