use serde::Serialize; use super::angle_link::WasmAngleLink; use super::babel_call::WasmBabelCall; use super::bold::WasmBold; use super::center_block::WasmCenterBlock; use super::citation::WasmCitation; use super::citation_reference::WasmCitationReference; use super::clock::WasmClock; use super::code::WasmCode; use super::comment::WasmComment; use super::comment_block::WasmCommentBlock; use super::diary_sexp::WasmDiarySexp; use super::document::WasmDocument; use super::drawer::WasmDrawer; use super::dynamic_block::WasmDynamicBlock; use super::entity::WasmEntity; use super::example_block::WasmExampleBlock; use super::export_block::WasmExportBlock; use super::export_snippet::WasmExportSnippet; use super::fixed_width_area::WasmFixedWidthArea; use super::footnote_definition::WasmFootnoteDefinition; use super::footnote_reference::WasmFootnoteReference; use super::headline::WasmHeadline; use super::horizontal_rule::WasmHorizontalRule; use super::inline_babel_call::WasmInlineBabelCall; use super::inline_source_block::WasmInlineSourceBlock; use super::italic::WasmItalic; use super::keyword::WasmKeyword; use super::latex_environment::WasmLatexEnvironment; use super::latex_fragment::WasmLatexFragment; use super::line_break::WasmLineBreak; use super::node_property::WasmNodeProperty; use super::org_macro::WasmOrgMacro; use super::paragraph::WasmParagraph; use super::plain_link::WasmPlainLink; use super::plain_list::WasmPlainList; use super::plain_list_item::WasmPlainListItem; use super::plain_text::WasmPlainText; use super::planning::WasmPlanning; use super::property_drawer::WasmPropertyDrawer; use super::quote_block::WasmQuoteBlock; use super::radio_link::WasmRadioLink; use super::radio_target::WasmRadioTarget; use super::regular_link::WasmRegularLink; use super::section::WasmSection; use super::special_block::WasmSpecialBlock; use super::src_block::WasmSrcBlock; use super::statistics_cookie::WasmStatisticsCookie; use super::strike_through::WasmStrikeThrough; use super::subscript::WasmSubscript; use super::superscript::WasmSuperscript; use super::table::WasmTable; use super::table_cell::WasmTableCell; use super::table_row::WasmTableRow; use super::target::WasmTarget; use super::timestamp::WasmTimestamp; use super::underline::WasmUnderline; use super::verbatim::WasmVerbatim; use super::verse_block::WasmVerseBlock; #[derive(Debug, Serialize)] #[serde(untagged)] pub enum WasmAstNode<'s, 'p> { // Document Nodes Document(WasmDocument<'s, 'p>), Headline(WasmHeadline<'s, 'p>), Section(WasmSection<'s, 'p>), // Elements Paragraph(WasmParagraph<'s, 'p>), PlainList(WasmPlainList<'s, 'p>), PlainListItem(WasmPlainListItem<'s, 'p>), CenterBlock(WasmCenterBlock<'s, 'p>), QuoteBlock(WasmQuoteBlock<'s, 'p>), SpecialBlock(WasmSpecialBlock<'s, 'p>), DynamicBlock(WasmDynamicBlock<'s, 'p>), FootnoteDefinition(WasmFootnoteDefinition<'s, 'p>), Comment(WasmComment<'s, 'p>), Drawer(WasmDrawer<'s, 'p>), PropertyDrawer(WasmPropertyDrawer<'s, 'p>), NodeProperty(WasmNodeProperty<'s, 'p>), Table(WasmTable<'s, 'p>), TableRow(WasmTableRow<'s, 'p>), VerseBlock(WasmVerseBlock<'s, 'p>), CommentBlock(WasmCommentBlock<'s, 'p>), ExampleBlock(WasmExampleBlock<'s, 'p>), ExportBlock(WasmExportBlock<'s, 'p>), SrcBlock(WasmSrcBlock<'s, 'p>), Clock(WasmClock<'s, 'p>), DiarySexp(WasmDiarySexp<'s, 'p>), Planning(WasmPlanning<'s, 'p>), FixedWidthArea(WasmFixedWidthArea<'s, 'p>), HorizontalRule(WasmHorizontalRule<'s, 'p>), Keyword(WasmKeyword<'s, 'p>), BabelCall(WasmBabelCall<'s, 'p>), LatexEnvironment(WasmLatexEnvironment<'s, 'p>), // Objects Bold(WasmBold<'s, 'p>), Italic(WasmItalic<'s, 'p>), Underline(WasmUnderline<'s, 'p>), StrikeThrough(WasmStrikeThrough<'s, 'p>), Code(WasmCode<'s, 'p>), Verbatim(WasmVerbatim<'s, 'p>), PlainText(WasmPlainText<'s, 'p>), RegularLink(WasmRegularLink<'s, 'p>), RadioLink(WasmRadioLink<'s, 'p>), RadioTarget(WasmRadioTarget<'s, 'p>), PlainLink(WasmPlainLink<'s, 'p>), AngleLink(WasmAngleLink<'s, 'p>), OrgMacro(WasmOrgMacro<'s, 'p>), Entity(WasmEntity<'s, 'p>), LatexFragment(WasmLatexFragment<'s, 'p>), ExportSnippet(WasmExportSnippet<'s, 'p>), FootnoteReference(WasmFootnoteReference<'s, 'p>), Citation(WasmCitation<'s, 'p>), CitationReference(WasmCitationReference<'s, 'p>), InlineBabelCall(WasmInlineBabelCall<'s, 'p>), InlineSourceBlock(WasmInlineSourceBlock<'s, 'p>), LineBreak(WasmLineBreak<'s, 'p>), Target(WasmTarget<'s, 'p>), StatisticsCookie(WasmStatisticsCookie<'s, 'p>), Subscript(WasmSubscript<'s, 'p>), Superscript(WasmSuperscript<'s, 'p>), TableCell(WasmTableCell<'s, 'p>), Timestamp(WasmTimestamp<'s, 'p>), } impl<'s, 'p> WasmAstNode<'s, 'p> {}