[](https://crates.io/crates/rat-ftable)
[](https://docs.rs/rat-ftable)
[](https://opensource.org/licenses/MIT)
[](https://www.apache.org/licenses/LICENSE-2.0)

## Table widget based on ratatui.
Could be used as a drop-in replacement for the ratatui table.
But that's not the point of this widget.
This widget uses the [TableData](crate::TableData) trait instead of rendering all the
table-cells and putting them into a Vec. This way rendering time only depends on
the screen-size not on the size of your data.
There is a variant that takes an Iterator of [TableRowData](crate::TableData).
It has as few traps though. If the Iterator doesn't have an efficient skip() or
if you can't give the number of rows this will iterate all your data for the
necessary information. This might slow down everything a bit.

More bullet points:
* Row and Column offset for rendering.
* Pluggable selection with [TableSelection](crate::TableSelection)
* Allows row/column/cell selection.
* Row/column/cell selection + Header/Footer selection each with its own style.
* Basic key/mouse handling present.
Eventhandling is currently crossterm only.
In practice event-handling is calling 1 or 2 functions on the state, so this
should be easy to map to other systems. (Contributions welcome :)