use serde::Serialize; use super::render_context::RenderContext; use crate::error::CustomError; use crate::intermediate::IPlainListSimpleItem; use super::macros::render; use super::RenderObject; /// Special case for list items with only 1 child which is a paragraph. In those cases, the paragraph tags are omitted. This is equivalent to a Paragraph but in a different struct to have a different type tag. #[derive(Debug, Serialize)] #[serde(tag = "type")] #[serde(rename = "plain_list_simple_item")] pub(crate) struct RenderPlainListSimpleItem { children: Vec, post_blank: organic::types::PostBlank, } render!( RenderPlainListSimpleItem, IPlainListSimpleItem, original, render_context, { let children = { let mut ret = Vec::new(); for obj in original.children.iter() { ret.push(RenderObject::new(render_context.clone(), obj)?); } ret }; Ok(RenderPlainListSimpleItem { children, post_blank: original.post_blank, }) } );