use std::path::Path; use serde::Serialize; use crate::config::Config; use crate::error::CustomError; use crate::intermediate::IRegularLink; use super::macros::render; use super::RenderObject; #[derive(Debug, Serialize)] #[serde(tag = "type")] #[serde(rename = "regular_link")] pub(crate) struct RenderRegularLink { raw_link: String, children: Vec, } render!( RenderRegularLink, IRegularLink, original, config, output_directory, output_file, { let children = { let mut ret = Vec::new(); for obj in original.children.iter() { ret.push(RenderObject::new( config, output_directory, output_file, obj, )?); } ret }; Ok(RenderRegularLink { raw_link: original.raw_link.clone(), children, }) } );