#![doc = include_str!("../readme.md")]
mod cellselection;
mod noselection;
mod rowselection;
mod rowsetselection;
mod table;
pub mod textdata;
pub mod util;
use ratatui::buffer::Buffer;
use ratatui::layout::Rect;
use ratatui::style::Style;
pub trait TableData<'a> {
    fn size(&self) -> (usize, usize);
    #[allow(unused_variables)]
    fn row_height(&self, row: usize) -> u16 {
        1
    }
    #[allow(unused_variables)]
    fn row_style(&self, row: usize) -> Style {
        Style::default()
    }
    fn render_cell(&self, column: usize, row: usize, area: Rect, buf: &mut Buffer);
}
pub trait TableSelection {
    fn is_selected_row(&self, row: usize) -> bool;
    fn is_selected_column(&self, column: usize) -> bool;
    fn is_selected_cell(&self, column: usize, row: usize) -> bool;
    fn lead_selection(&self) -> Option<(usize, usize)>;
}
pub use table::{FTable, FTableState, FTableStyle};
pub mod selection {
    pub use crate::cellselection::CellSelection;
    pub use crate::noselection::NoSelection;
    pub use crate::rowselection::RowSelection;
    pub use crate::rowsetselection::RowSetSelection;
}
pub mod event {
    pub use rat_event::util::Outcome;
    pub use rat_event::{FocusKeys, HandleEvent, MouseOnly, UsedEvent};
}
mod _private {
    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
    pub struct NonExhaustive;
}