use pandoc_ast::{MutVisitor, Pandoc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub struct DataFile {
filename: String,
contents: String,
}
impl DataFile {
pub fn new(filename: String, contents: String) -> DataFile {
DataFile { filename, contents }
}
pub fn filename(&self) -> &str {
&self.filename
}
pub fn contents(&self) -> &str {
&self.contents
}
}
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub struct DataFiles {
files: Vec<DataFile>,
}
impl DataFiles {
pub fn new(ast: &mut Pandoc) -> DataFiles {
let mut files = DataFiles { files: vec![] };
files.walk_pandoc(ast);
files
}
pub fn files(&self) -> &[DataFile] {
&self.files
}
pub fn push(&mut self, file: DataFile) {
self.files.push(file);
}
}