X-Git-Url: https://git.r.bdr.sh/rbdr/blog/blobdiff_plain/d7fef30ac3f539975ef9edbba8e0af4a4e9ff3de..b17907faf8d9693cef94a6048d802bd4ced9102f:/src/generator/mod.rs?ds=sidebyside diff --git a/src/generator/mod.rs b/src/generator/mod.rs index 293ad7d..dbe1c2e 100644 --- a/src/generator/mod.rs +++ b/src/generator/mod.rs @@ -4,18 +4,20 @@ mod static_files; mod txt; use crate::post::Post; -use crate::template::TemplateContext; +use crate::template::Context; use std::io::Result; -use std::path::PathBuf; +use std::path::Path; + +type Generator = fn(&Path, &Path, &Path, &Context) -> Result<()>; pub fn generate( - static_directory: &PathBuf, - template_directory: &PathBuf, - output_directory: &PathBuf, - posts: &Vec, + static_directory: &Path, + template_directory: &Path, + output_directory: &Path, + posts: &[Post], ) -> Result<()> { let generators = available_generators(); - let context = Post::to_template_context(&posts); + let context = Post::to_template_context(posts); for generator in generators { generator( static_directory, @@ -27,7 +29,7 @@ pub fn generate( Ok(()) } -fn available_generators() -> Vec Result<()>> { +fn available_generators() -> Vec { vec![ static_files::generate, // These three are actually the same. Can generalize, don't know how in rust yet.