processors_rs/pdf/tesseract/parse_line_util.rs
1use crate::pdf::tesseract::error::{TessError, TessResult};
2
3pub(crate) fn parse_next<T: std::str::FromStr>(
4 iter: &mut std::str::SplitWhitespace<'_>,
5) -> Option<T> {
6 iter.next()?.parse::<T>().ok()
7}
8
9pub(crate) trait FromLine: Sized {
10 fn from_line(line: &str) -> Option<Self>;
11
12 fn parse(line: &str) -> TessResult<Self> {
13 Self::from_line(line).ok_or(TessError::ParseError(format!("invalid line '{}'", line)))
14 }
15}