use super::{DocumentSummary, PageKind};
#[must_use]
pub fn summarise(pages: &[PageKind]) -> DocumentSummary {
if pages.is_empty() || pages.iter().all(|k| *k == PageKind::Empty) {
return DocumentSummary::Empty;
}
let non_empty: Vec<&PageKind> = pages.iter().filter(|k| **k != PageKind::Empty).collect();
let text = non_empty.iter().filter(|k| matches!(k, PageKind::TextLayer)).count();
let scanned = non_empty.iter().filter(|k| matches!(k, PageKind::Scanned)).count();
let n = non_empty.len();
if text * 100 >= n * 80 {
DocumentSummary::MostlyText
} else if scanned * 100 >= n * 80 {
DocumentSummary::MostlyScanned
} else {
DocumentSummary::Mixed
}
}