use tesseract_sys::TessPageSegMode;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PageSegMode {
PsmOsdOnly,
PsmAutoOsd,
PsmAutoOnly,
PsmAuto,
PsmSingleColumn,
PsmSingleBlockVertText,
PsmSingleBlock,
PsmSingleLine,
PsmSingleWord,
PsmCircleWord,
PsmSingleChar,
PsmSparseText,
PsmSparseTextOsd,
PsmRawLine,
}
impl PageSegMode {
pub fn as_tess_page_seg_mode(&self) -> TessPageSegMode {
match self {
PageSegMode::PsmOsdOnly => tesseract_sys::TessPageSegMode_PSM_OSD_ONLY,
PageSegMode::PsmAutoOsd => tesseract_sys::TessPageSegMode_PSM_AUTO_OSD,
PageSegMode::PsmAutoOnly => tesseract_sys::TessPageSegMode_PSM_AUTO_ONLY,
PageSegMode::PsmAuto => tesseract_sys::TessPageSegMode_PSM_AUTO,
PageSegMode::PsmSingleColumn => tesseract_sys::TessPageSegMode_PSM_SINGLE_COLUMN,
PageSegMode::PsmSingleBlockVertText => {
tesseract_sys::TessPageSegMode_PSM_SINGLE_BLOCK_VERT_TEXT
}
PageSegMode::PsmSingleBlock => tesseract_sys::TessPageSegMode_PSM_SINGLE_BLOCK,
PageSegMode::PsmSingleLine => tesseract_sys::TessPageSegMode_PSM_SINGLE_LINE,
PageSegMode::PsmSingleWord => tesseract_sys::TessPageSegMode_PSM_SINGLE_WORD,
PageSegMode::PsmCircleWord => tesseract_sys::TessPageSegMode_PSM_CIRCLE_WORD,
PageSegMode::PsmSingleChar => tesseract_sys::TessPageSegMode_PSM_SINGLE_CHAR,
PageSegMode::PsmSparseText => tesseract_sys::TessPageSegMode_PSM_SPARSE_TEXT,
PageSegMode::PsmSparseTextOsd => tesseract_sys::TessPageSegMode_PSM_SPARSE_TEXT_OSD,
PageSegMode::PsmRawLine => tesseract_sys::TessPageSegMode_PSM_RAW_LINE,
}
}
}