recovery_use.bend
bendvy-ecs-core@0.1.0.0 · 17 lines · 0 definitions
1import Base
2# Typed operational uses; capture has no synthetic schema resource identity.
3type Target is Data:
4 Component{key:String}
5 Resource{key:String}
6 Capture{}
7type Mode is Data:Write{}
8type Use is Data:Use{target:Target,mode:Mode}
9type Description is Data:Description{uses:List<&2,Use>,opaque:Bool}
10def none() -> Description:Description{[],True{}}
11def known(uses:List<&2,Use>) -> Description:Description{uses,False{}}
12def pair(left:Description,right:Description) -> Description:
13 match left right:
14 case Description{a,oa} Description{b,ob}:Description{List.append(&2,Use,a,b),Bool.or(oa,ob)}
15def complete(value:Description) -> Bool:
16 match value:
17 case Description{_,opaque}:Bool.not(opaque)