From c1b471208d893fbaceca397a5923502e40d73ee3 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Fri, 29 Dec 2023 23:06:45 -0500 Subject: [PATCH] Implement plain list item. --- src/wasm/plain_list_item.rs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/wasm/plain_list_item.rs b/src/wasm/plain_list_item.rs index 2bf6174..70c2300 100644 --- a/src/wasm/plain_list_item.rs +++ b/src/wasm/plain_list_item.rs @@ -4,15 +4,20 @@ use serde::Serialize; use super::ast_node::WasmAstNode; use super::macros::to_wasm; use super::to_wasm::ToWasm; -use super::AdditionalProperties; use crate::compare::ElispFact; +use crate::types::CheckboxType; use crate::types::PlainListItem; +use crate::types::PlainListItemCounter; use crate::wasm::to_wasm::ToWasmStandardProperties; #[derive(Debug, Serialize, Deserialize)] pub struct WasmPlainListItem { - #[serde(flatten)] - pub(crate) additional_properties: AdditionalProperties, + pub(crate) tag: Vec, + pub(crate) bullet: String, + pub(crate) counter: Option, + pub(crate) checkbox: Option, + #[serde(rename = "pre-blank")] + pub(crate) pre_blank: usize, } to_wasm!( @@ -21,7 +26,7 @@ to_wasm!( original, wasm_context, { WasmAstNode::PlainListItem(original) }, - { "TODO".into() }, + { "item".into() }, { let children = original .children @@ -36,7 +41,18 @@ to_wasm!( Ok(( children, WasmPlainListItem { - additional_properties: AdditionalProperties::default(), + tag: Vec::new(), + bullet: original.bullet.to_owned(), + counter: original.counter.clone(), + checkbox: original.checkbox.as_ref().map(|(checkbox_type, _)| { + match checkbox_type { + CheckboxType::On => "on", + CheckboxType::Trans => "trans", + CheckboxType::Off => "off", + } + .to_owned() + }), + pre_blank: 0, // TODO: Should this be a no-op? }, )) }