about summary refs log tree commit diff
path: root/transform/table.scm
diff options
context:
space:
mode:
Diffstat (limited to 'transform/table.scm')
-rw-r--r--transform/table.scm28
1 files changed, 28 insertions, 0 deletions
diff --git a/transform/table.scm b/transform/table.scm
new file mode 100644
index 0000000..e6254d0
--- /dev/null
+++ b/transform/table.scm
@@ -0,0 +1,28 @@
+(define-module (transform table)
+  #:use-module (srfi srfi-9 gnu)
+  #:export (make-table
+            table-name
+            table-size
+            table-columns
+            set-table-columns
+            make-column
+            column-name
+            column-type
+            column-transformed?))
+
+(define-immutable-record-type <table>
+  (make-table name size columns)
+  table?
+  (name table-name)
+  (size table-size)
+  (columns table-columns set-table-columns))
+
+(define-immutable-record-type <column>
+  (column-constructor name type transformed?)
+  column?
+  (name column-name)
+  (type column-type)
+  (transformed? column-transformed?))
+
+(define* (make-column name type #:optional transformed?)
+  (column-constructor name type transformed?))