2023-12-21 17:18:51 -05:00
use serde ::Serialize ;
use super ::render_context ::RenderContext ;
use crate ::error ::CustomError ;
use crate ::intermediate ::IPlainListSimpleItem ;
use super ::macros ::render ;
use super ::RenderObject ;
2023-12-21 17:27:19 -05:00
/// Special case for list items with only paragraphs and sublists as their children. 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.
2023-12-21 17:18:51 -05:00
#[ derive(Debug, Serialize) ]
#[ serde(tag = " type " ) ]
#[ serde(rename = " plain_list_simple_item " ) ]
pub ( crate ) struct RenderPlainListSimpleItem {
children : Vec < RenderObject > ,
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 ,
} )
}
) ;