def contains

bendvy-ecs-core@0.1.0.3 · execution_lifetime_scope_coverage.bend:8

import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_coverage.bend as ExecutionLifetimeScopeCoverage
import Base
import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as Permission
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout

8# Cleanup may mutate every declared relation family. It refuses before mutation
9# if the accepted catalogue omits any protected graph in the actual root layout.
10def contains(~S:Data,~resources:Layout.Layout,+route:Layout.Route,relations:Permission.Relations<S,resources>) -> Bool:
11  match relations:
12    case Permission.NoRelations{}:False{}
13    case Permission.RelationAllowed{selected,_,_,_,_,_,rest}:Bool.or(Permission.same_route(route,selected),contains(~S,~resources,route,rest))
14    case Permission.ScopeAllowed{_,_,_,_,_,rest}:contains(~S,~resources,route,rest)

Uses (6)

Used by (1)