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)