ordinary_app_machine_value_dump.bend

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

1import Base
2import bendvy-ecs-core@0.1.0.0/world.bend as W
3import bendvy-ecs-core@0.1.0.0/machine.bend as M
4import bendvy-ecs-core@0.1.0.0/machine_world.bend as MW
5import bendvy-ecs-core@0.1.0.0/ordinary_machine_declaration.bend as OD
6import bendvy-ecs-core@0.1.0.0/ordinary_app_machine.bend as Machine
7import bendvy-ecs-core@0.1.0.0/ordinary_app_composer.bend as Build
8import bendvy-ecs-core@0.1.0.0/ordinary_app_registration_fields.bend as Fields
9import bendvy-ecs-core@0.1.0.0/ordinary_app_observation_data.bend as DTO
10# Full existing Data slot; no state transition, structural flush or reader work.
11# Name and slot lens come from the SAME operative ordinary declaration.
12# Detached full existing machine Slot plus declaration name, including queued and
13# previous state metadata. This is a Data observation, not an execution capability.
14type View<S:Data,K:Data,V:Data> is Data:
15  View{name:String,slot:M.Slot<S,K,V>}
16def returned(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~take:R -> R & M.Slot<S,K,V>,~put:R -> M.Slot<S,K,V> -> R,~same:V -> V -> Bool,~declaration:OD.Declaration<S,K,V,R,take>,~render:V -> String,~Owners:Type,~Rows:Data,~prior:W.World<S,C,R,E> -> W.World<S,C,R,E> & DTO.Observation<Rows>,~fold:Owners -> Owners & List<&2,Fields.Fields<S>>,owners:Owners,recipe:Machine.Recipe(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold),result:W.World<S,C,R,E> & M.Slot<S,K,V>) -> Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold) & Maybe<&2,View<S,K,V>>:
17  match result:
18    case (world,slot):(Build.Registered{world,owners,recipe,True{}},Some{View{OD.name(~S,~K,~V,~R,~take,declaration),slot}})
19# Return App with optional full declared machine Slot. Disabled returns None
20# before slot projection; enabled retains actual World/registration owners and
21# recipe. No state transition, queue flush, barrier or reader advancement occurs.
22def snapshot(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~take:R -> R & M.Slot<S,K,V>,~put:R -> M.Slot<S,K,V> -> R,~same:V -> V -> Bool,~declaration:OD.Declaration<S,K,V,R,take>,~render:V -> String,~Owners:Type,~Rows:Data,~prior:W.World<S,C,R,E> -> W.World<S,C,R,E> & DTO.Observation<Rows>,~fold:Owners -> Owners & List<&2,Fields.Fields<S>>,app:Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold)) -> Machine.Application(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold) & Maybe<&2,View<S,K,V>>:
23  match app:
24    case Build.Registered{world,owners,recipe,True{}}:returned(~S,~K,~V,~C,~R,~E,~take,~put,~same,~declaration,~render,~Owners,~Rows,~prior,~fold,owners,recipe,MW.take(~S,~K,~V,~C,~R,~E,~take,world))
25    case app:(app,None{})