use crate::pdf::hierarchy::SegmentData;
#[derive(Debug, Clone)]
pub(crate) struct PdfLine {
pub segments: Vec<SegmentData>,
pub baseline_y: f32,
pub dominant_font_size: f32,
pub is_bold: bool,
pub is_monospace: bool,
}
#[derive(Debug, Clone)]
pub(crate) struct PdfParagraph {
pub lines: Vec<PdfLine>,
pub dominant_font_size: f32,
pub heading_level: Option<u8>,
pub is_bold: bool,
pub is_list_item: bool,
pub is_code_block: bool,
pub is_formula: bool,
pub is_page_furniture: bool,
pub layout_class: Option<LayoutHintClass>,
pub caption_for: Option<usize>,
pub block_bbox: Option<(f32, f32, f32, f32)>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[allow(dead_code)] pub(crate) enum LayoutHintClass {
Title,
SectionHeader,
Code,
Formula,
ListItem,
Caption,
Footnote,
PageHeader,
PageFooter,
Table,
Picture,
Text,
Other,
}
#[derive(Debug, Clone)]
pub(crate) struct LayoutHint {
pub class: LayoutHintClass,
pub confidence: f32,
pub left: f32,
pub bottom: f32,
pub right: f32,
pub top: f32,
}