owned_optimized_compose.bend
bendvy-ecs-core@0.1.0.0 · 17 lines · 0 definitions
1import Base
2import bendvy-ecs-core@0.1.0.0/change_tick.bend as Tick
3import world.bend as W
4import compose.bend as Q
5import owned_compose.bend as O
6import optimized_compose.bend as Opt
7import transaction.bend as T
8
9def each(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~plan:O.Plan<S,Store,R,E,Ops,H>,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome<U> & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World<S,Store,R,E>) -> Q.Executed<W.World<S,Store,R,E>,Q.Error<U>,Out>:
10 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~plan,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world)))
11def each_since(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~plan:O.Plan<S,Store,R,E,Ops,H>,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome<U> & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World<S,Store,R,E>,cursor:Maybe<&2,Tick.Tick>) -> Q.Executed<W.World<S,Store,R,E>,Q.Error<U>,Out>:
12 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_since(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~plan,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world),cursor))
13
14def each_fields(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~caps:Ops(H),~select:Q.Frame<S,Store,R,E> -> Q.Frame<S,Store,R,E> & Bool,~enter:Q.Frame<S,Store,R,E> -> H,~leave:H -> Q.Frame<S,Store,R,E>,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome<U> & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World<S,Store,R,E>) -> Q.Executed<W.World<S,Store,R,E>,Q.Error<U>,Out>:
15 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_fields(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~caps,~select,~enter,~leave,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world)))
16def each_fields_since(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~H:Type,~A:Data,~U:Data,~Out:Data,~caps:Ops(H),~select:Q.Frame<S,Store,R,E> -> Q.Frame<S,Store,R,E> & Bool,~enter:Q.Frame<S,Store,R,E> -> H,~leave:H -> Q.Frame<S,Store,R,E>,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome<U> & Out),~prepare:Store -> Store,~recover:Store -> Store,args:A,world:W.World<S,Store,R,E>,cursor:Maybe<&2,Tick.Tick>) -> Q.Executed<W.World<S,Store,R,E>,Q.Error<U>,Out>:
17 Opt.recovered(~S,~Store,~R,~E,~U,~Out,~recover,O.each_fields_since(~S,~Store,~R,~E,~Ops,~H,~A,~U,~Out,~caps,~select,~enter,~leave,~body,args,Opt.map_store(~S,~Store,~R,~E,~prepare,world),cursor))