rapid-structure-rs 1.0.0

Rust document-structure engine for PaddleOCR-family ONNX models: text detection/recognition (PP-OCRv6), table structure (SLANet-plus) and formula recognition (PP-FormulaNet) on Windows x64 via ONNX Runtime.
use crate::{
    Quad,
    ocr::det::detector::DetTimingBreakdown,
    ocr::rec::recognizer::BatchRecord,
    ocr::types::{LineResult, WordBox},
};

/// Internal execution snapshot. It never crosses the public crate boundary.
#[derive(Debug, Clone, Default)]
pub(crate) struct ExecutionOutput {
    pub boxes: Option<Vec<Quad>>,
    pub det_scores: Option<Vec<f32>>,
    pub txts: Option<Vec<String>>,
    pub scores: Option<Vec<f32>>,
    pub word_boxes: Option<Vec<Vec<WordBox>>>,
    pub cls_res: Option<Vec<(String, f32)>>,
    pub lines: Option<Vec<LineResult>>,
    pub elapsed_ms: [Option<f32>; 3],
    pub e2e_ms: Option<f32>,
    pub det_breakdown_ms: Option<DetTimingBreakdown>,
    pub det_input_size: Option<(u32, u32)>,
    pub postprocess_ms: Option<f32>,
    pub decode_ms: Option<f32>,
    pub resize_ms: Option<f32>,
    pub crop_ms: Option<f32>,
    pub cls_breakdown_ms: Option<[f32; 3]>,
    pub rec_breakdown_ms: Option<[f32; 3]>,
    pub processed_size: Option<(u32, u32)>,
    pub rec_batch_records: Vec<BatchRecord>,
}
#[derive(Debug, Clone, Default)]
pub(crate) struct ExecutionOptions {
    pub use_det: bool,
    pub use_cls: bool,
    pub apply_cls_rotation: bool,
    pub use_rec: bool,
    pub return_word_box: bool,
    pub return_single_char_box: bool,
    pub text_score: Option<f32>,
    pub box_thresh: Option<f32>,
    pub unclip_ratio: Option<f32>,
}