Estou tentando usar crate docx_rust
para mesclar uma lista de documentos do Word em um. Eu tento isso, mas estou tendo um problema de vida doc
porque ele é descartado no final do for
loop.
use docx_rust::{Docx, DocxFile};
fn merge_docs<'a>(file_paths: &[&str], output_path: &str) -> Result<(), Box<dyn std::error::Error>> {
let mut merged_doc = Docx::default();
for path in file_paths {
let doc = DocxFile::from_file(Path::new(path))?; // No Rc here initially
let mut p_doc = doc.parse().unwrap();
merged_doc.document.body.content.extend(p_doc.document.body.content.drain(..));
}
merged_doc.write_file(Path::new(output_path))?;
Ok(())
}
Tentei empurrar cada documento aberto para um vetor, mas isso não estende o tempo de vida. Tentei armazená-los em um Rc::new()
, mas não funcionou.
Aceitarei qualquer solução!