use serde::Deserialize; 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; use super::WasmStandardProperties; #[derive(Debug, Serialize, Deserialize)] pub struct WasmAstNodeWrapper { #[serde(rename = "ast-node")] pub(crate) ast_node: String, #[serde(rename = "standard-properties")] pub(crate) standard_properties: WasmStandardProperties, #[serde(rename = "children")] pub(crate) children: Vec, #[serde(rename = "properties")] pub(crate) properties: I, } #[derive(Debug, Serialize, Deserialize)] #[serde(untagged)] pub enum WasmAstNode { // Document Nodes Document(WasmAstNodeWrapper), Headline(WasmAstNodeWrapper), Section(WasmAstNodeWrapper), // Elements Paragraph(WasmAstNodeWrapper), PlainList(WasmAstNodeWrapper), PlainListItem(WasmAstNodeWrapper), CenterBlock(WasmAstNodeWrapper), QuoteBlock(WasmAstNodeWrapper), SpecialBlock(WasmAstNodeWrapper), DynamicBlock(WasmAstNodeWrapper), FootnoteDefinition(WasmAstNodeWrapper), Comment(WasmAstNodeWrapper), Drawer(WasmAstNodeWrapper), PropertyDrawer(WasmAstNodeWrapper), NodeProperty(WasmAstNodeWrapper), Table(WasmAstNodeWrapper), TableRow(WasmAstNodeWrapper), VerseBlock(WasmAstNodeWrapper), CommentBlock(WasmAstNodeWrapper), ExampleBlock(WasmAstNodeWrapper), ExportBlock(WasmAstNodeWrapper), SrcBlock(WasmAstNodeWrapper), Clock(WasmAstNodeWrapper), DiarySexp(WasmAstNodeWrapper), Planning(WasmAstNodeWrapper), FixedWidthArea(WasmAstNodeWrapper), HorizontalRule(WasmAstNodeWrapper), Keyword(WasmAstNodeWrapper), BabelCall(WasmAstNodeWrapper), LatexEnvironment(WasmAstNodeWrapper), // Objects Bold(WasmAstNodeWrapper), Italic(WasmAstNodeWrapper), Underline(WasmAstNodeWrapper), StrikeThrough(WasmAstNodeWrapper), Code(WasmAstNodeWrapper), Verbatim(WasmAstNodeWrapper), PlainText(WasmAstNodeWrapper), RegularLink(WasmAstNodeWrapper), RadioLink(WasmAstNodeWrapper), RadioTarget(WasmAstNodeWrapper), PlainLink(WasmAstNodeWrapper), AngleLink(WasmAstNodeWrapper), OrgMacro(WasmAstNodeWrapper), Entity(WasmAstNodeWrapper), LatexFragment(WasmAstNodeWrapper), ExportSnippet(WasmAstNodeWrapper), FootnoteReference(WasmAstNodeWrapper), Citation(WasmAstNodeWrapper), CitationReference(WasmAstNodeWrapper), InlineBabelCall(WasmAstNodeWrapper), InlineSourceBlock(WasmAstNodeWrapper), LineBreak(WasmAstNodeWrapper), Target(WasmAstNodeWrapper), StatisticsCookie(WasmAstNodeWrapper), Subscript(WasmAstNodeWrapper), Superscript(WasmAstNodeWrapper), TableCell(WasmAstNodeWrapper), Timestamp(WasmAstNodeWrapper), } impl WasmAstNode {}