def selected_spec

bendvy-ecs-core@0.1.0.4 · ordinary_inspector_relation.bend:29

import bendvy-ecs-core@0.1.0.4/ordinary_inspector_relation.bend as OrdinaryInspectorRelation
import Base
import bendvy-ecs-core@0.1.0.4/relation_failure_reader.bend as Ord
import bendvy-ecs-core@0.1.0.4/relation_query.bend as RQ

29def selected_spec(~S:Data,source:Ord.Declaration<S>,mode:Mode) -> RQ.Spec<S>:
30  match mode:
31    case RequiredOut{key}:RQ.Spec{[RQ.read_relation(~S,key,descriptor(~S,source))]}
32    case OptionalOut{key}:RQ.Spec{[RQ.optional_relation(~S,key,descriptor(~S,source))]}
33    case PresentOut{}:RQ.Spec{[RQ.with_relation(~S,descriptor(~S,source))]}
34    case AbsentOut{}:RQ.Spec{[RQ.without_relation(~S,descriptor(~S,source))]}
35    case RequiredIn{key}:RQ.Spec{[RQ.read_related(~S,key,descriptor(~S,source))]}
36    case OptionalIn{key}:RQ.Spec{[RQ.optional_related(~S,key,descriptor(~S,source))]}
37    case PresentIn{}:RQ.Spec{[RQ.with_related(~S,descriptor(~S,source))]}
38    case AbsentIn{}:RQ.Spec{[RQ.without_related(~S,descriptor(~S,source))]}

Uses (13)

Used by (1)