type Relations

bendvy-ecs-core@0.1.0.3 · execution_command_permission.bend:18

import bendvy-ecs-core@0.1.0.3/execution_command_permission.bend as ExecutionCommandPermission
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/execution_resource_policy.bend as Policy
import bendvy-ecs-core@0.1.0.3/execution_relation_store.bend as RelationStore
import bendvy-ecs-core@0.1.0.3/relation_types.bend as Relation
import bendvy-ecs-core@0.1.0.3/execution_lifetime_scope_store.bend as ScopeStore

18# This closed algebra retains schema evidence supplied by the same declaration.
19# A route selects a grant; it never creates any of these type equalities.
20type Relations<-S:Data,-resources:Layout.Layout> is Data:
21  NoRelations{}
22  RelationAllowed{route:Layout.Route,valid:{Layout.grant_valid(~resources,~route) == True{} : Bool},descriptor:Relation.Descriptor<S>,payload:{Layout.payload(resources,route) == RelationStore.Store<S,descriptor> : Type},view:{Layout.view(resources,route) == RelationStore.View<S,descriptor> : Data},protected:{Layout.policy(resources,route) == Policy.ProtectedRelation{S,descriptor} : Policy.Policy},rest:Relations<S,resources>}
23  ScopeAllowed{route:Layout.Route,valid:{Layout.grant_valid(~resources,~route) == True{} : Bool},payload:{Layout.payload(resources,route) == ScopeStore.Store<S> : Type},view:{Layout.view(resources,route) == ScopeStore.View<S> : Data},protected:{Layout.policy(resources,route) == Policy.ProtectedLifetimeScope{S} : Policy.Policy},rest:Relations<S,resources>}

Uses (13)

Used by (43)