owned_event_key_route.bend

bendvy-ecs-core@0.1.0.0 · 17 lines · 0 definitions

1import Base
2import bendvy-ecs-core@0.1.0.0/ordinary_event_family.bend as Family
3import bendvy-ecs-core@0.1.0.0/event_publication.bend as Publication
4
5# These are the existing Data-family singleton injections and ordered branch
6# projections, specialized to log-local Nat IDs. Equal IDs on sibling branches
7# remain distinct because each declaration binds both its route and resource path.
8def inject_leaf(id:Nat) -> Nat:Family.inject_leaf(~Nat,id)
9def inject_left(~A:Data,~B:Data,~inject:Nat -> A,id:Nat) -> Publication.Publication<A,B>:
10  Family.inject_left(~Nat,~A,~B,~inject,id)
11def inject_right(~A:Data,~B:Data,~inject:Nat -> B,id:Nat) -> Publication.Publication<A,B>:
12  Family.inject_right(~Nat,~A,~B,~inject,id)
13def select_leaf(ids:List<&2,Nat>) -> List<&2,Nat>:ids
14def select_left(~A:Data,~B:Data,~select:List<&2,A> -> List<&2,Nat>,records:List<&2,Publication.Publication<A,B>>) -> List<&2,Nat>:
15  select(Publication.first_values(~A,~B,records))
16def select_right(~A:Data,~B:Data,~select:List<&2,B> -> List<&2,Nat>,records:List<&2,Publication.Publication<A,B>>) -> List<&2,Nat>:
17  select(Publication.second_values(~A,~B,records))