| Crates.io | better-cursive-table |
| lib.rs | better-cursive-table |
| version | 0.3.0 |
| created_at | 2026-01-18 09:05:16.022069+00 |
| updated_at | 2026-01-21 01:21:00.142089+00 |
| description | TableView and ArrayView for Cursive TUIs |
| homepage | |
| repository | https://github.com/justnc32/better-cursive-table.git |
| max_upload_size | |
| id | 2052095 |
| size | 238,372 |
TableView and ArrayView widgets for the cursive TUI framework. This is a maintained fork of cursive_table_view with all original functionality plus a toggle to disable sorting and header selection.
Links: crates.io | docs.rs | GitHub
TableView with multi-column sort and keyboard/mouse navigation
ArrayView for labeled rows + columns (a 2D grid with headers)
Chainable column configuration (alignment, width, default order)
Callbacks for sort, row select, and submit
Optional non-sortable mode for "static" tables

use better_cursive_table::TableBuilder;
let table = TableBuilder::new()
.column_header(vec!["A", "B", "C"])
.data(vec![vec![1, 3, 10], vec![2, 1, 42]])
.sortable(true)
.build();
Disable header selection and sort indicators entirely:
use better_cursive_table::TableBuilder;
let table = TableBuilder::new()
.column_header(vec!["A", "B"])
.data(vec![vec![1, 3]])
.sortable(false)
.build();
use better_cursive_table::ArrayBuilder;
let array = ArrayBuilder::new()
.array_name("My Array")
.column_header(vec!["X", "Y", "Z"])
.add_row("Row A", vec![1, 2, 3])
.add_row("Row B", vec![4, 5])
.build();
use std::cmp::Ordering;
use better_cursive_table::TableBuilder;
let table = TableBuilder::new()
.column_header(vec!["A"])
.data(vec![vec![1]]).build()
.on_sort(|_siv, _col, _order: Ordering| {})
.on_select(|_siv, _row, _index| {})
.on_submit(|_siv, _row, _index| {});
Licensed under either of:
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.