def selected_path

bendvy-ecs-core@0.1.0.4 · ordinary_app_hierarchy_query.bend:40

import bendvy-ecs-core@0.1.0.4/ordinary_app_hierarchy_query.bend as OrdinaryAppHierarchyQuery
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/ordinary_app_relation.bend as Relation
import bendvy-ecs-core@0.1.0.4/ordinary_app_observation_data.bend as DTO
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as A
import bendvy-ecs-core@0.1.0.4/hierarchy_provider.bend as Path
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as Query
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/transaction.bend as Tx

40def selected_path(~S:Data,~C:Type,~R:Type,~E:Data,~Ops:Type -> Type,~Arg:Data,~U:Data,~Out:Data,~query:Query.Declaration<S,Q.Frame<S,A.Store<S,C>,R,A.Notice<S,E>>,Ops(Q.Frame<S,A.Store<S,C>,R,A.Notice<S,E>>)>,~body:@-H:Type -> @-caps:Ops(H) -> Arg -> H -> H & (Tx.Outcome<U> & Out),args:Arg,cursor:Maybe<&2,Tick.Tick>,observed:Relation.World(~S,~C,~R,~E) & Maybe<&2,Path.Path<S>>) -> Relation.World(~S,~C,~R,~E) & DTO.Product<Maybe<&2,Path.Path<S>>,Maybe<&2,DTO.Product<Tx.Outcome<Q.Error<U>>,List<&2,Out>>>>:
41  match observed:
42    case (world,None{}):(world,DTO.Product{None{},None{}})
43    case (world,Some{Path.Incomplete{handles,pending}}):(world,DTO.Product{Some{Path.Incomplete{handles,pending}},None{}})
44    case (world,Some{Path.Complete{+handles}}):complete_live(~S,~C,~R,~E,~Ops,~Arg,~U,~Out,~query,~body,Some{Path.Complete{handles}},args,cursor,live_handles(~S,~C,~R,~E,handles,world))

Uses (16)

Used by (1)