3 Table Representation
These modules contain the internal table representation, utilities to transform any list of lists into it and some queries on these internal structures for further use by the renderer.
3.1 Table Structs
(require uni-table/private/table-structs) | |
package: uni-table |
This module contains all internal structs describing table of pre-rendered cells.
value
value
value
struct
(struct ut:cell (lines borders alignment) #:transparent) lines : sgr-lines? borders : borders? alignment : alignment?
value
value
value
value
struct
(struct ut:column (width) #:transparent) width : (or/c #f exact-nonnegative-integer?)
struct
(struct ut:table (rows columns) #:transparent) rows : (listof table-row?) columns : (listof ut:column?)
3.2 Table Queries
(require uni-table/private/table-query) | package: uni-table |
This module implements simple queries on internal tables structs.
procedure
(get-ut:cell-width cell) โ exact-nonnegative-integer?
cell : ut:cell?
procedure
(get-ut:cell-height cell) โ exact-nonnegative-integer?
cell : ut:cell?
procedure
(table-row-height row) โ exact-nonnegative-integer?
row : table-row?
procedure
(table-column-width column) โ exact-nonnegative-integer?
column : table-column?
procedure
(table-columns-widths tbl)
โ (listof exact-nonnegative-integer?) tbl : table?
procedure
(table-rows-heights tbl) โ (listof exact-nonnegative-integer?)
tbl : table?
procedure
tbl : table?
3.3 Table Cell
(require uni-table/private/table-cell) | package: uni-table |
This module handles direct manipulation of table-cell? properties.
procedure
(make-table-cell content [ #:borders borders-spec #:align align-spec #:style style-spec]) โ ut:cell? content : any/c borders-spec : borders-spec/c = '() align-spec : alignment-spec/c = '() style-spec : sgr-style-spec/c = '()
procedure
(ut:cell-merge-borders cell borders) โ ut:cell?
cell : ut:cell? borders : borders?
procedure
(ut:cell-merge-align cell align) โ ut:cell?
cell : ut:cell? align : alignment?
3.4 Transformations
(require uni-table/private/table-transform) | |
package: uni-table |
This module implements transformations from table/c to a well-formed and pre-rendered table? instances.
procedure
(table-row-parse row required-len cell-borders columns-borders cell-align row-align columns-align cell-style-spec row-style-spec columns-style-specs) โ table-row? row : table-row/c required-len : exact-nonnegative-integer? cell-borders : borders? columns-borders : (listof borders?) cell-align : alignment? row-align : alignment? columns-align : (listof alignment?) cell-style-spec : sgr-style-spec/c row-style-spec : sgr-style-spec/c columns-style-specs : (listof sgr-style-spec/c)
procedure
(table-parse tbl [ #:cell-borders cell-borders-spec #:row-borders rows-borders-spec #:column-borders columns-borders-spec #:cell-align cell-align-spec #:row-align row-align-spec #:column-align column-align-spec #:cell-style cell-style-spec #:row-style row-style-spec #:column-style column-style-spec #:table-borders table-borders #:column-widths column-widths-spec]) โ ut:table? tbl : table/c cell-borders-spec : borders-spec/c = '() rows-borders-spec : (spec-template-of borders-spec/c) = '() columns-borders-spec : (spec-template-of borders-spec/c) = '() cell-align-spec : alignment-spec/c = '() row-align-spec : (spec-template-of alignment-spec/c) = '() column-align-spec : (spec-template-of alignment-spec/c) = '() cell-style-spec : sgr-style-spec/c = '() row-style-spec : (spec-template-of sgr-style-spec/c) = '() column-style-spec : (spec-template-of sgr-style-spec/c) = '() table-borders : borders? = no-borders column-widths-spec : column-widths-spec/c = '()
procedure
(table-prerender tbl) โ ut:table?
tbl : ut:table?
procedure
(table-transform tbl [ #:cell-borders cell-borders-spec #:row-borders rows-borders-spec #:column-borders columns-borders-spec #:cell-align cell-align-spec #:row-align row-align-spec #:column-align column-align-spec #:cell-style cell-style-spec #:row-style row-style-spec #:column-style column-style-spec #:table-borders table-borders #:column-widths column-widths-spec]) โ ut:table? tbl : table/c cell-borders-spec : borders-spec/c = '() rows-borders-spec : (spec-template-of borders-spec/c) = '() columns-borders-spec : (spec-template-of borders-spec/c) = '() cell-align-spec : alignment-spec/c = '() row-align-spec : (spec-template-of alignment-spec/c) = '() column-align-spec : (spec-template-of alignment-spec/c) = '() cell-style-spec : sgr-style-spec/c = '() row-style-spec : (spec-template-of sgr-style-spec/c) = '() column-style-spec : (spec-template-of sgr-style-spec/c) = '() table-borders : borders? = no-borders column-widths-spec : column-widths-spec/c = '()