Mercurial > urweb
diff tests/rpcO.ur @ 641:b98f547a6a45
RPC returning an option
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 08 Mar 2009 13:41:55 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/rpcO.ur Sun Mar 08 13:41:55 2009 -0400 @@ -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