#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct TableGrid {
pub rows: u32,
pub cols: u32,
pub cells: Vec<GridCell>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct GridCell {
pub content: String,
pub row: u32,
pub col: u32,
#[cfg_attr(feature = "serde", serde(default = "default_span"))]
pub row_span: u32,
#[cfg_attr(feature = "serde", serde(default = "default_span"))]
pub col_span: u32,
#[cfg_attr(feature = "serde", serde(default))]
pub is_header: bool,
}
#[cfg(feature = "serde")]
fn default_span() -> u32 {
1
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct TableData {
pub grid: TableGrid,
pub markdown: String,
}