aboutsummaryrefslogtreecommitdiffstats
path: root/prototypes/connections/examples/selection.pure
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-24 17:14:54 +0100
committereunhhu <[email protected]>2026-09-24 17:14:54 +0100
commitb1ce1927022d374198441afafeb27199fc8a052a (patch)
tree6021f175f4c67ed03b44240eaa2f90d846f12f6f /prototypes/connections/examples/selection.pure
parentd34f9426d5317a1948f12f229439946728bc342a (diff)
downloadpure-b1ce1927022d374198441afafeb27199fc8a052a.tar.gz
pure-b1ce1927022d374198441afafeb27199fc8a052a.zip
Establish native micro runtime checkpoint
Diffstat (limited to 'prototypes/connections/examples/selection.pure')
-rw-r--r--prototypes/connections/examples/selection.pure19
1 files changed, 19 insertions, 0 deletions
diff --git a/prototypes/connections/examples/selection.pure b/prototypes/connections/examples/selection.pure
new file mode 100644
index 0000000..7d9d4ec
--- /dev/null
+++ b/prototypes/connections/examples/selection.pure
@@ -0,0 +1,19 @@
+// This is an input boundary layout, not a required storage or RAM model.
+// The client sends two little-endian u32 values followed by document bytes.
+layout Selection {
+ start: u32le;
+ count: u32le;
+ document: bytes;
+}
+
+on get {
+ let saved = store.read(request.key);
+ reply(saved, saved.body);
+}
+
+on put {
+ let input = view(Selection, request.body);
+ let selected = range(input.document, input.start, input.count);
+ let saved = store.write(request.key, request.revision, selected);
+ reply(saved, selected);
+}