use std::collections::HashMap; use serde::Serialize; use super::WasmAstNode; #[derive(Debug, Serialize)] pub enum AdditionalPropertyValue<'s, 'p> { SingleString(&'s str), ListOfStrings(Vec<&'s str>), OptionalPair { optval: Option<&'s str>, val: &'s str, }, ObjectTree(Vec<(Option>>, Vec>)>), } #[derive(Debug, Serialize, Default)] pub struct AdditionalProperties<'s, 'p> { pub(crate) properties: HashMap>, } impl<'s, 'p> AdditionalProperties<'s, 'p> { pub(crate) fn get_elisp_names<'c>(&'c self) -> impl Iterator + 'c { self.properties.keys().map(move |key| format!(":{}", key)) } }