README

hustcer/tabular/papergrid does not have a README file

#
Borders

pub struct Borders {
top : Char?
top_left : Char?
top_right : Char?
top_intersection : Char?
bottom : Char?
bottom_left : Char?
bottom_right : Char?
bottom_intersection : Char?
horizontal : Char?
vertical : Char?
left : Char?
right : Char?
intersection : Char?
left_intersection : Char?
right_intersection : Char?
}

#
Borders::ascii

fn Borders::ascii() -> Borders

#
Borders::ascii_rounded

fn Borders::ascii_rounded() -> Borders

#
Borders::build_line

fn Borders::build_line(_self : Borders, left : Char?, fill : Char?, intersection : Char?, right : Char?, widths : Array[Int]) -> String

#
Borders::dots

fn Borders::dots() -> Borders

#
Borders::empty

fn Borders::empty() -> Borders

#
Borders::extended

fn Borders::extended() -> Borders

#
Borders::markdown

fn Borders::markdown() -> Borders

#
Borders::modern

fn Borders::modern() -> Borders

#
Borders::psql

fn Borders::psql() -> Borders

#
Borders::re_structured_text

fn Borders::re_structured_text() -> Borders

#
Borders::remove_bottom

fn Borders::remove_bottom(self : Borders) -> Borders

#
Borders::remove_left

fn Borders::remove_left(self : Borders) -> Borders

#
Borders::remove_right

fn Borders::remove_right(self : Borders) -> Borders

#
Borders::remove_top

fn Borders::remove_top(self : Borders) -> Borders

#
Borders::remove_vertical

fn Borders::remove_vertical(self : Borders) -> Borders

#
Borders::rounded

fn Borders::rounded() -> Borders

#
Borders::with_bottom

fn Borders::with_bottom(self : Borders, ch : Char) -> Borders

#
Borders::with_bottom_intersection

fn Borders::with_bottom_intersection(self : Borders, ch : Char) -> Borders

#
Borders::with_bottom_left

fn Borders::with_bottom_left(self : Borders, ch : Char) -> Borders

#
Borders::with_bottom_right

fn Borders::with_bottom_right(self : Borders, ch : Char) -> Borders

#
Borders::with_horizontal

fn Borders::with_horizontal(self : Borders, ch : Char) -> Borders

#
Borders::with_intersection

fn Borders::with_intersection(self : Borders, ch : Char) -> Borders

#
Borders::with_left

fn Borders::with_left(self : Borders, ch : Char) -> Borders

#
Borders::with_left_intersection

fn Borders::with_left_intersection(self : Borders, ch : Char) -> Borders

#
Borders::with_right

fn Borders::with_right(self : Borders, ch : Char) -> Borders

#
Borders::with_right_intersection

fn Borders::with_right_intersection(self : Borders, ch : Char) -> Borders

#
Borders::with_top

fn Borders::with_top(self : Borders, ch : Char) -> Borders

#
Borders::with_top_intersection

fn Borders::with_top_intersection(self : Borders, ch : Char) -> Borders

#
Borders::with_top_left

fn Borders::with_top_left(self : Borders, ch : Char) -> Borders

#
Borders::with_top_right

fn Borders::with_top_right(self : Borders, ch : Char) -> Borders

#
Borders::with_vertical

fn Borders::with_vertical(self : Borders, ch : Char) -> Borders

#
CellBorder

pub(all) struct CellBorder {
top : Char?
bottom : Char?
left : Char?
right : Char?
left_top_corner : Char?
right_top_corner : Char?
left_bottom_corner : Char?
right_bottom_corner : Char?
}

#
CellBorder::empty

fn CellBorder::empty() -> CellBorder

#
CellBorder::filled

fn CellBorder::filled(ch : Char) -> CellBorder

#
HAlign

pub enum HAlign {
Left
Right
Center
}

#
HAlign::center

fn HAlign::center() -> HAlign

#
HAlign::left

fn HAlign::left() -> HAlign

#
HAlign::right

fn HAlign::right() -> HAlign

#
HeightMode

pub enum HeightMode {
None
Increase(Int)
Limit(Int)
}

#
HeightMode::increase

fn HeightMode::increase(size : Int) -> HeightMode

#
HeightMode::limit

fn HeightMode::limit(size : Int) -> HeightMode

#
HeightMode::none

fn HeightMode::none() -> HeightMode

#
HorizontalLine

pub struct HorizontalLine {
main : Char?
left : Char?
intersection : Char?
right : Char?
}

#
HorizontalLine::filled

fn HorizontalLine::filled(ch : Char) -> HorizontalLine

#
HorizontalLine::from_chars

fn HorizontalLine::from_chars(main : Char?, left : Char?, intersection : Char?, right : Char?) -> HorizontalLine

#
HorizontalLine::full

fn HorizontalLine::full(main : Char, left : Char, intersection : Char, right : Char) -> HorizontalLine

#
HorizontalLine::new

fn HorizontalLine::new(ch : Char) -> HorizontalLine

#
HorizontalLine::with_intersection

fn HorizontalLine::with_intersection(self : HorizontalLine, ch : Char) -> HorizontalLine

#
HorizontalLine::with_left

fn HorizontalLine::with_left(self : HorizontalLine, ch : Char) -> HorizontalLine

#
HorizontalLine::with_right

fn HorizontalLine::with_right(self : HorizontalLine, ch : Char) -> HorizontalLine

#
HorizontalLines

pub enum HorizontalLines {
All
HeaderOnly
None
}

#
HorizontalLines::all

#
HorizontalLines::header_only

fn HorizontalLines::header_only() -> HorizontalLines

#
HorizontalLines::none

#
IterGrid

pub struct IterGrid {
records : IterRecords
config : SpannedConfig
dimension : IterGridDimension
}

#
IterGrid::new

fn IterGrid::new(records : IterRecords, config : SpannedConfig, dimension : IterGridDimension) -> IterGrid

#
IterGrid::to_string

fn IterGrid::to_string(self : IterGrid) -> String

#
IterGridDimension

pub struct IterGridDimension {
widths : Array[Int]
}

#
IterGridDimension::default

#
IterGridDimension::estimate

fn IterGridDimension::estimate(self : IterGridDimension, records : IterRecords, cfg : SpannedConfig) -> Unit

#
IterGridDimension::widths

fn IterGridDimension::widths(self : IterGridDimension) -> Array[Int]

#
IterRecords

pub struct IterRecords {
rows : Array[Array[String]]
count_cols : Int
}

#
IterRecords::count_cols

fn IterRecords::count_cols(self : IterRecords) -> Int

#
IterRecords::count_rows

fn IterRecords::count_rows(self : IterRecords) -> Int

#
IterRecords::get_cell

fn IterRecords::get_cell(self : IterRecords, row : Int, col : Int) -> String

#
IterRecords::new

fn IterRecords::new(rows : Array[Array[String]]) -> IterRecords

#
IterRecords::rows

fn IterRecords::rows(self : IterRecords) -> Array[Array[String]]

#
Scope

type Scope

#
SpannedConfig

pub struct SpannedConfig {
borders : Borders
padding_left : Int
padding_right : Int
padding_top : Int
padding_bottom : Int
align : HAlign
valign : VAlign
width_mode : WidthMode
height_mode : HeightMode
horizontal_lines : HorizontalLines
custom_horizontal_lines : Array[(Int, HorizontalLine)]
width_rules : Array[(Scope, WidthMode)]
height_rules : Array[(Scope, HeightMode)]
align_rules : Array[(Scope, HAlign)]
valign_rules : Array[(Scope, VAlign)]
padding_rules : Array[(Scope, Int, Int, Int, Int)]
col_spans : Array[(Int, Int, Int)]
row_spans : Array[(Int, Int, Int)]
span_sources : Array[(Int, Int, Int, Int)]
border_horizontal : Array[(Int, Int, Char)]
border_vertical : Array[(Int, Int, Char)]
border_intersection : Array[(Int, Int, Char)]
margin_top : Int
margin_bottom : Int
margin_left : Int
margin_right : Int
margin_fill_top : Char
margin_fill_bottom : Char
margin_fill_left : Char
margin_fill_right : Char
margin_offset_top : Int
margin_offset_bottom : Int
margin_offset_left : Int
margin_offset_right : Int
}

#
SpannedConfig::align

fn SpannedConfig::align(self : SpannedConfig) -> HAlign

#
SpannedConfig::align_at

fn SpannedConfig::align_at(self : SpannedConfig, row : Int, col : Int) -> HAlign

#
SpannedConfig::borders

fn SpannedConfig::borders(self : SpannedConfig) -> Borders

#
SpannedConfig::clear_span_source

fn SpannedConfig::clear_span_source(self : SpannedConfig, anchor_row : Int, anchor_col : Int) -> Unit

#
SpannedConfig::clear_spans_and_overrides

fn SpannedConfig::clear_spans_and_overrides(self : SpannedConfig) -> Unit

Clear all spans and border override arrays. Used after operations like Split that completely reshape the table.

#
SpannedConfig::clear_unused_span_source

fn SpannedConfig::clear_unused_span_source(self : SpannedConfig, anchor_row : Int, anchor_col : Int) -> Unit

#
SpannedConfig::col_span_at

fn SpannedConfig::col_span_at(self : SpannedConfig, row : Int, col : Int) -> Int

#
SpannedConfig::custom_horizontal_line

fn SpannedConfig::custom_horizontal_line(self : SpannedConfig, row : Int) -> HorizontalLine?

#
SpannedConfig::default

fn SpannedConfig::default() -> SpannedConfig

#
SpannedConfig::get_cell_border

fn SpannedConfig::get_cell_border(self : SpannedConfig, row : Int, col : Int, count_rows : Int, count_cols : Int) -> CellBorder

Get the effective cell border for a cell at (row, col) given table shape (count_rows, count_cols). Returns a CellBorder with the resolved border characters including overrides.

#
SpannedConfig::get_col_span

fn SpannedConfig::get_col_span(self : SpannedConfig, row : Int, col : Int) -> Int?

#
SpannedConfig::get_row_span

fn SpannedConfig::get_row_span(self : SpannedConfig, row : Int, col : Int) -> Int?

#
SpannedConfig::has_cell_borders

fn SpannedConfig::has_cell_borders(self : SpannedConfig) -> Bool

#
SpannedConfig::has_col_spans

fn SpannedConfig::has_col_spans(self : SpannedConfig) -> Bool

#
SpannedConfig::has_left_border

fn SpannedConfig::has_left_border(self : SpannedConfig, row : Int, col : Int, count_rows : Int, count_cols : Int) -> Bool

Check if a cell has a "left" border (for border correction). Returns false if the cell is covered by a col span or both spans.

#
SpannedConfig::has_margin

fn SpannedConfig::has_margin(self : SpannedConfig) -> Bool

#
SpannedConfig::has_row_spans

fn SpannedConfig::has_row_spans(self : SpannedConfig) -> Bool

#
SpannedConfig::has_top_border

fn SpannedConfig::has_top_border(self : SpannedConfig, row : Int, col : Int, count_rows : Int, count_cols : Int) -> Bool

Check if a cell has a "top" border (for border correction). Returns false if the cell is covered by a row span or both spans.

#
SpannedConfig::height_mode

fn SpannedConfig::height_mode(self : SpannedConfig) -> HeightMode

#
SpannedConfig::height_mode_at

fn SpannedConfig::height_mode_at(self : SpannedConfig, row : Int, col : Int) -> HeightMode

#
SpannedConfig::horizontal_lines

fn SpannedConfig::horizontal_lines(self : SpannedConfig) -> HorizontalLines

#
SpannedConfig::horizontal_override_at

fn SpannedConfig::horizontal_override_at(self : SpannedConfig, row_boundary : Int, col : Int) -> Char?

#
SpannedConfig::intersection_override_at

fn SpannedConfig::intersection_override_at(self : SpannedConfig, row_boundary : Int, col_boundary : Int) -> Char?

#
SpannedConfig::is_cell_covered_by_both_spans

fn SpannedConfig::is_cell_covered_by_both_spans(self : SpannedConfig, row : Int, col : Int) -> Bool

#
SpannedConfig::is_cell_covered_by_col_span

fn SpannedConfig::is_cell_covered_by_col_span(self : SpannedConfig, row : Int, col : Int) -> Bool

#
SpannedConfig::is_cell_covered_by_row_span

fn SpannedConfig::is_cell_covered_by_row_span(self : SpannedConfig, row : Int, col : Int) -> Bool

#
SpannedConfig::is_cell_visible

fn SpannedConfig::is_cell_visible(self : SpannedConfig, row : Int, col : Int) -> Bool

#
SpannedConfig::padding_at

fn SpannedConfig::padding_at(self : SpannedConfig, row : Int, col : Int) -> (Int, Int, Int, Int)

#
SpannedConfig::padding_bottom

fn SpannedConfig::padding_bottom(self : SpannedConfig) -> Int

#
SpannedConfig::padding_left

fn SpannedConfig::padding_left(self : SpannedConfig) -> Int

#
SpannedConfig::padding_right

fn SpannedConfig::padding_right(self : SpannedConfig) -> Int

#
SpannedConfig::padding_top

fn SpannedConfig::padding_top(self : SpannedConfig) -> Int

#
SpannedConfig::remap

fn SpannedConfig::remap(self : SpannedConfig, row_map : Array[Int], col_map : Array[Int]) -> Unit

#
SpannedConfig::row_span_at

fn SpannedConfig::row_span_at(self : SpannedConfig, row : Int, col : Int) -> Int

#
SpannedConfig::set_align

fn SpannedConfig::set_align(self : SpannedConfig, align : HAlign) -> Unit

#
SpannedConfig::set_align_for_all

fn SpannedConfig::set_align_for_all(self : SpannedConfig, align : HAlign) -> Unit

#
SpannedConfig::set_align_for_cell

fn SpannedConfig::set_align_for_cell(self : SpannedConfig, row : Int, col : Int, align : HAlign) -> Unit

#
SpannedConfig::set_align_for_cols

fn SpannedConfig::set_align_for_cols(self : SpannedConfig, start : Int, end : Int, align : HAlign) -> Unit

#
SpannedConfig::set_align_for_rows

fn SpannedConfig::set_align_for_rows(self : SpannedConfig, start : Int, end : Int, align : HAlign) -> Unit

#
SpannedConfig::set_borders

fn SpannedConfig::set_borders(self : SpannedConfig, borders : Borders) -> Unit

#
SpannedConfig::set_cell_border

fn SpannedConfig::set_cell_border(self : SpannedConfig, row : Int, col : Int, border : CellBorder) -> Unit

Set per-cell border overrides at the grid-position level. Each border component is stored at the actual grid position it affects.

#
SpannedConfig::set_col_span

fn SpannedConfig::set_col_span(self : SpannedConfig, row : Int, col : Int, span : Int) -> Unit

#
SpannedConfig::set_custom_horizontal_lines

fn SpannedConfig::set_custom_horizontal_lines(self : SpannedConfig, lines : Array[(Int, HorizontalLine)]) -> Unit

#
SpannedConfig::set_height_mode

fn SpannedConfig::set_height_mode(self : SpannedConfig, mode : HeightMode) -> Unit

#
SpannedConfig::set_height_mode_for_all

fn SpannedConfig::set_height_mode_for_all(self : SpannedConfig, mode : HeightMode) -> Unit

#
SpannedConfig::set_height_mode_for_cell

fn SpannedConfig::set_height_mode_for_cell(self : SpannedConfig, row : Int, col : Int, mode : HeightMode) -> Unit

#
SpannedConfig::set_height_mode_for_cols

fn SpannedConfig::set_height_mode_for_cols(self : SpannedConfig, start : Int, end : Int, mode : HeightMode) -> Unit

#
SpannedConfig::set_height_mode_for_rows

fn SpannedConfig::set_height_mode_for_rows(self : SpannedConfig, start : Int, end : Int, mode : HeightMode) -> Unit

#
SpannedConfig::set_horizontal_lines

fn SpannedConfig::set_horizontal_lines(self : SpannedConfig, mode : HorizontalLines) -> Unit

#
SpannedConfig::set_margin

fn SpannedConfig::set_margin(self : SpannedConfig, top : Int, bottom : Int, left : Int, right : Int, fill_top : Char, fill_bottom : Char, fill_left : Char, fill_right : Char) -> Unit

#
SpannedConfig::set_margin_offset

fn SpannedConfig::set_margin_offset(self : SpannedConfig, top : Int, bottom : Int, left : Int, right : Int) -> Unit

#
SpannedConfig::set_padding

fn SpannedConfig::set_padding(self : SpannedConfig, left : Int, right : Int, top : Int, bottom : Int) -> Unit

#
SpannedConfig::set_padding_for_all

fn SpannedConfig::set_padding_for_all(self : SpannedConfig, left : Int, right : Int, top : Int, bottom : Int) -> Unit

#
SpannedConfig::set_padding_for_cell

fn SpannedConfig::set_padding_for_cell(self : SpannedConfig, row : Int, col : Int, left : Int, right : Int, top : Int, bottom : Int) -> Unit

#
SpannedConfig::set_padding_for_cols

fn SpannedConfig::set_padding_for_cols(self : SpannedConfig, start : Int, end : Int, left : Int, right : Int, top : Int, bottom : Int) -> Unit

#
SpannedConfig::set_padding_for_rows

fn SpannedConfig::set_padding_for_rows(self : SpannedConfig, start : Int, end : Int, left : Int, right : Int, top : Int, bottom : Int) -> Unit

#
SpannedConfig::set_row_span

fn SpannedConfig::set_row_span(self : SpannedConfig, row : Int, col : Int, span : Int) -> Unit

#
SpannedConfig::set_span_source

fn SpannedConfig::set_span_source(self : SpannedConfig, anchor_row : Int, anchor_col : Int, source_row : Int, source_col : Int) -> Unit

#
SpannedConfig::set_valign

fn SpannedConfig::set_valign(self : SpannedConfig, align : VAlign) -> Unit

#
SpannedConfig::set_valign_for_all

fn SpannedConfig::set_valign_for_all(self : SpannedConfig, align : VAlign) -> Unit

#
SpannedConfig::set_valign_for_cell

fn SpannedConfig::set_valign_for_cell(self : SpannedConfig, row : Int, col : Int, align : VAlign) -> Unit

#
SpannedConfig::set_valign_for_cols

fn SpannedConfig::set_valign_for_cols(self : SpannedConfig, start : Int, end : Int, align : VAlign) -> Unit

#
SpannedConfig::set_valign_for_rows

fn SpannedConfig::set_valign_for_rows(self : SpannedConfig, start : Int, end : Int, align : VAlign) -> Unit

#
SpannedConfig::set_width_mode

fn SpannedConfig::set_width_mode(self : SpannedConfig, mode : WidthMode) -> Unit

#
SpannedConfig::set_width_mode_for_all

fn SpannedConfig::set_width_mode_for_all(self : SpannedConfig, mode : WidthMode) -> Unit

#
SpannedConfig::set_width_mode_for_cell

fn SpannedConfig::set_width_mode_for_cell(self : SpannedConfig, row : Int, col : Int, mode : WidthMode) -> Unit

#
SpannedConfig::set_width_mode_for_cols

fn SpannedConfig::set_width_mode_for_cols(self : SpannedConfig, start : Int, end : Int, mode : WidthMode) -> Unit

#
SpannedConfig::set_width_mode_for_rows

fn SpannedConfig::set_width_mode_for_rows(self : SpannedConfig, start : Int, end : Int, mode : WidthMode) -> Unit

#
SpannedConfig::shift_col_spans_right

fn SpannedConfig::shift_col_spans_right(self : SpannedConfig, target_col : Int) -> Unit

Shift all spans whose col >= target_col rightward by 1. Used when inserting a vertical panel col.

#
SpannedConfig::shift_row_spans_down

fn SpannedConfig::shift_row_spans_down(self : SpannedConfig, target_row : Int) -> Unit

Shift all spans whose row >= target_row downward by 1. Used when inserting a horizontal panel row.

#
SpannedConfig::span_anchor_for_source

fn SpannedConfig::span_anchor_for_source(self : SpannedConfig, source_row : Int, source_col : Int) -> (Int, Int)?

#
SpannedConfig::span_source_at

fn SpannedConfig::span_source_at(self : SpannedConfig, anchor_row : Int, anchor_col : Int) -> (Int, Int)

#
SpannedConfig::valign

fn SpannedConfig::valign(self : SpannedConfig) -> VAlign

#
SpannedConfig::valign_at

fn SpannedConfig::valign_at(self : SpannedConfig, row : Int, col : Int) -> VAlign

#
SpannedConfig::vertical_override_at

fn SpannedConfig::vertical_override_at(self : SpannedConfig, row : Int, col_boundary : Int) -> Char?

#
SpannedConfig::width_mode

fn SpannedConfig::width_mode(self : SpannedConfig) -> WidthMode

#
SpannedConfig::width_mode_at

fn SpannedConfig::width_mode_at(self : SpannedConfig, row : Int, col : Int) -> WidthMode

#
VAlign

pub enum VAlign {
Top
Bottom
Center
}

#
VAlign::bottom

fn VAlign::bottom() -> VAlign

#
VAlign::center

fn VAlign::center() -> VAlign

#
VAlign::top

fn VAlign::top() -> VAlign

#
WidthMode

pub enum WidthMode {
None
Wrap(Int, String)
Truncate(Int, String)
}

#
WidthMode::none

fn WidthMode::none() -> WidthMode

#
WidthMode::truncate

fn WidthMode::truncate(width : Int, suffix : String) -> WidthMode

#
WidthMode::wrap

fn WidthMode::wrap(width : Int) -> WidthMode

#
WidthMode::wrap_with

fn WidthMode::wrap_with(width : Int, placeholder : String) -> WidthMode

#
apply_height

fn apply_height(lines : Array[String], mode : HeightMode) -> Array[String]

#
apply_width

fn apply_width(content : String, mode : WidthMode) -> Array[String]

#
processed_lines

fn processed_lines(content : String, width_mode : WidthMode, height_mode : HeightMode) -> Array[String]

#
split_lines

fn split_lines(content : String) -> Array[String]