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}