summaryrefslogtreecommitdiff
path: root/tests/rpcDE.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-03-08 12:37:42 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-03-08 12:37:42 -0400
commitc0a6029c982508efaa1f00caf4b61dc0096443b2 (patch)
tree16f872ddda6b89d621cb45a6dd0a1b492ece00dc /tests/rpcDE.ur
parente4e1bf5221bd0cf68df2ba444425e5a0b9d50af1 (diff)
RPC returning an enumeration
Diffstat (limited to 'tests/rpcDE.ur')
-rw-r--r--tests/rpcDE.ur30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/rpcDE.ur b/tests/rpcDE.ur
new file mode 100644
index 00000000..64e190f5
--- /dev/null
+++ b/tests/rpcDE.ur
@@ -0,0 +1,30 @@
+datatype result = Neg | Zero | Pos
+
+table t : {A : int}
+
+fun main () : transaction page =
+ let
+ fun check () =
+ r <- oneRow (SELECT SUM(t.A) AS X FROM t);
+ return (if r.X < 0 then
+ Neg
+ else if r.X = 0 then
+ Zero
+ else
+ Pos)
+
+ fun show r =
+ case r of
+ Neg => <xml>-</xml>
+ | Zero => <xml>0</xml>
+ | Pos => <xml>+</xml>
+ in
+ s <- source Zero;
+ return <xml><body>
+ <button value="Get It On!"
+ onclick={r <- check ();
+ set s r}/><br/>
+ <br/>
+ Current: <dyn signal={r <- signal s; return (show r)}/>
+ </body></xml>
+ end