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))]}