use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct PageConfig {
#[serde(default)]
pub extract_pages: bool,
#[serde(default)]
pub insert_page_markers: bool,
#[serde(default = "default_page_marker_format")]
pub marker_format: String,
}
impl Default for PageConfig {
fn default() -> Self {
Self {
extract_pages: false,
insert_page_markers: false,
marker_format: "\n\n<!-- PAGE {page_num} -->\n\n".to_string(),
}
}
}
fn default_page_marker_format() -> String {
"\n\n<!-- PAGE {page_num} -->\n\n".to_string()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_page_config_default() {
let config = PageConfig::default();
assert!(!config.extract_pages);
assert!(!config.insert_page_markers);
assert_eq!(config.marker_format, "\n\n<!-- PAGE {page_num} -->\n\n");
}
}