Qualify collection compare-and-swap and explicit ensure mutations

This commit is contained in:
Timothy J. Aveni
2026-09-20 22:57:27 -07:00
parent 115976cacd
commit 33f674321b
5 changed files with 101 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>>; };
external atom Node id "collection:node";
interface NodeData id "collection:data" revision "collection:data@1" {
queryable portable value version id "collection:version" : list<string> {
get id "collection:version:get" execution snapshot targets [browser, server];
}
operation replace id "collection:replace" : Replacement -> unit {
call id "collection:replace:call" execution transaction targets [browser, server];
}
operation ensure id "collection:ensure" : unit -> atom-ref<Node> {
call id "collection:ensure:call" execution transaction targets [browser, server];
}
queryable value label id "collection:label" : string {
get id "collection:label:get" execution snapshot targets [browser, server];
set id "collection:label:set" execution transaction targets [browser, server];
}
queryable relation items id "collection:items" : many atom Node {
resolve id "collection:items:resolve" execution snapshot targets [browser, server];
}
queryable relation containers id "collection:containers" : many atom Node {
resolve id "collection:containers:resolve" execution snapshot targets [browser, server];
}
queryable relation detail id "collection:detail" : optional-one atom Node {
resolve id "collection:detail:resolve" execution snapshot targets [browser, server];
}
}