use std::path::Path; use serde::Serialize; use crate::blog_post::Object; use crate::config::Config; use crate::error::CustomError; use super::plain_text::RenderPlainText; #[derive(Debug, Serialize)] #[serde(untagged)] pub(crate) enum RenderObject { PlainText(RenderPlainText), } impl RenderObject { pub(crate) fn new, F: AsRef>( config: &Config, output_directory: D, output_file: F, object: &Object, ) -> Result { match object { Object::PlainText(inner) => Ok(RenderObject::PlainText(RenderPlainText::new( config, output_directory, output_file, inner, )?)), } } }