use std::sync::Arc;
#[derive(Debug, Clone)]
pub struct PdfDocument {
pub markdown: String,
pub figures: Vec<PdfFigure>,
pub heading_levels: u8,
}
#[derive(Debug, Clone)]
pub struct PdfFigure {
pub hash: String,
pub mime_type: String,
pub bytes: Vec<u8>,
pub name: Option<String>,
}
pub type ImageEmitter = Arc<dyn Fn(&str, &str) -> String + Send + Sync>;
#[derive(Clone)]
pub struct ExtractConfig {
pub image_emitter: ImageEmitter,
}
impl Default for ExtractConfig {
fn default() -> Self {
Self {
image_emitter: default_image_emitter(),
}
}
}
pub(crate) fn default_image_emitter() -> ImageEmitter {
Arc::new(|hash, alt| {
if alt.is_empty() {
format!("")
} else {
format!("")
}
})
}