summaryrefslogtreecommitdiff
path: root/tests/rpcO.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-03-08 13:41:55 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-03-08 13:41:55 -0400
commitd8d9309a0242408460488de0c44029d74c7b3113 (patch)
tree340a1e5251d1a16874ce49b5edf487714f45ff7b /tests/rpcO.ur
parent654a4218e5122728bcd17bf3cc85e575cdd4fbdc (diff)
RPC returning an option
Diffstat (limited to 'tests/rpcO.ur')
-rw-r--r--tests/rpcO.ur25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/rpcO.ur b/tests/rpcO.ur
new file mode 100644
index 00000000..bc4b430e
--- /dev/null
+++ b/tests/rpcO.ur
@@ -0,0 +1,25 @@
+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
+ (Some 3, None)
+ else
+ (None, Some "Hi"))
+
+ fun show (t ::: Type) (_ : show t) (opt : option t) =
+ case opt of
+ None => <xml>None</xml>
+ | Some v => <xml>{[v]}</xml>
+ in
+ s <- source (None, None);
+ return <xml><body>
+ <button value="Get It On!"
+ onclick={r <- check ();
+ set s r}/><br/>
+ <br/>
+ Current: <dyn signal={p <- signal s; return <xml>{show p.1}, {show p.2}</xml>}/>
+ </body></xml>
+ end