2019-01-09 22:25:11 -06:00
|
|
|
|
2019-01-09 22:33:03 -06:00
|
|
|
// return a list of the fields in a tuple.
|
2019-01-09 22:25:11 -06:00
|
|
|
let fields = module{
|
|
|
|
tpl = NULL,
|
|
|
|
} => {
|
2019-01-16 19:07:03 -06:00
|
|
|
let reducer = macro(acc, field, value) => acc + [field];
|
2019-01-09 22:25:11 -06:00
|
|
|
|
2019-01-16 19:07:03 -06:00
|
|
|
let result = reduce reducer [], (mod.tpl);
|
2019-01-09 22:25:11 -06:00
|
|
|
};
|
|
|
|
|
2019-01-09 22:33:03 -06:00
|
|
|
// return a list of the values in a tuple.
|
2019-01-09 22:25:11 -06:00
|
|
|
let values = module{
|
|
|
|
tpl = NULL,
|
|
|
|
} => {
|
2019-01-16 19:07:03 -06:00
|
|
|
let reducer = macro(acc, field, value) => acc + [value];
|
2019-01-09 22:25:11 -06:00
|
|
|
|
2019-01-16 19:07:03 -06:00
|
|
|
let result = reduce reducer [], (mod.tpl);
|
2019-01-09 22:33:03 -06:00
|
|
|
};
|
|
|
|
|
2019-01-13 21:24:35 -06:00
|
|
|
let iter = module{
|
2019-01-09 22:33:03 -06:00
|
|
|
tpl = NULL,
|
|
|
|
} => {
|
2019-01-16 19:07:03 -06:00
|
|
|
let reducer = macro(acc, field, value) => acc + [[field, value]];
|
2019-01-09 22:33:03 -06:00
|
|
|
|
2019-01-16 19:07:03 -06:00
|
|
|
let result = reduce reducer [], (mod.tpl);
|
2019-01-15 19:31:55 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
let strip_nulls = module{
|
|
|
|
tpl = NULL,
|
|
|
|
} => {
|
2019-01-16 19:07:03 -06:00
|
|
|
let filterer = macro(name, value) => value != NULL;
|
2019-01-15 19:31:55 -06:00
|
|
|
|
2019-01-16 19:07:03 -06:00
|
|
|
let result = filter filterer (mod.tpl);
|
2019-01-09 22:25:11 -06:00
|
|
|
};
|