use super::record::PptRecord;
use crate::ole::ppt::package::Result;
#[derive(Debug, Clone)]
pub struct SlideAtomsSet<'a> {
pub slide_persist_atom: &'a PptRecord,
pub slide_records: Vec<&'a PptRecord>,
}
impl<'a> SlideAtomsSet<'a> {
pub fn extract_text(&self) -> Result<String> {
let mut text_parts = Vec::new();
for record in &self.slide_records {
if let Ok(text) = record.extract_text() {
if !text.is_empty() {
text_parts.push(text);
}
}
}
Ok(text_parts.join("\n"))
}
pub fn get_slide_id(&self) -> Option<u32> {
self.slide_persist_atom.get_slide_id()
}
}