[](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 :)