diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-23 18:18:51 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-23 18:18:51 -0400 |
commit | fbde7928c43149e02806949343783dc6e885ab0f (patch) | |
tree | f6923214e0d8e9d058c248ab817aa08aba5fd2f9 /demo/crud.urs | |
parent | c083f2b0659545c9a0f36faf1a56239f4efc8df2 (diff) |
Crud demo
Diffstat (limited to 'demo/crud.urs')
-rw-r--r-- | demo/crud.urs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/demo/crud.urs b/demo/crud.urs new file mode 100644 index 00000000..33090421 --- /dev/null +++ b/demo/crud.urs @@ -0,0 +1,26 @@ +con colMeta = fn t_formT :: (Type * Type) => + {Nam : string, + Show : t_formT.1 -> xbody, + Widget : nm :: Name -> xml form [] [nm = t_formT.2], + WidgetPopulated : nm :: Name -> t_formT.1 + -> xml form [] [nm = t_formT.2], + Parse : t_formT.2 -> t_formT.1, + Inject : sql_injectable t_formT.1} +con colsMeta = fn cols :: {(Type * Type)} => $(mapT2T colMeta cols) + +val int : string -> colMeta (int, string) +val float : string -> colMeta (float, string) +val string : string -> colMeta (string, string) +val bool : string -> colMeta (bool, bool) + +functor Make(M : sig + con cols :: {(Type * Type)} + constraint [Id] ~ cols + val tab : sql_table ([Id = int] ++ mapT2T fstTT cols) + + val title : string + + val cols : colsMeta cols + end) : sig + val main : unit -> transaction page +end |