I need to parse the affiliated keywords during parsing because it relies on the global settings.

This commit is contained in:
Tom Alexander
2023-10-11 11:31:20 -04:00
parent c0e462944d
commit a5129199c7
5 changed files with 48 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
use std::collections::BTreeMap;
use super::Object;
#[derive(Debug)]
pub enum AffiliatedKeywordValue<'s> {
SingleString(&'s str),
ListOfStrings(Vec<&'s str>),
ListOfObjects(Vec<Object<'s>>),
}
#[derive(Debug)]
pub struct AffiliatedKeyword<'s> {
pub name: &'s str,
pub value: AffiliatedKeywordValue<'s>,
}
#[derive(Debug)]
pub struct AffiliatedKeywords<'s> {
pub(crate) keywords: BTreeMap<&'s str, AffiliatedKeywordValue<'s>>,
}

View File

@@ -1,5 +1,6 @@
use super::element::Element;
use super::lesser_element::TableCell;
use super::AffiliatedKeywords;
use super::Keyword;
use super::Object;
use super::StandardProperties;
@@ -7,7 +8,7 @@ use super::StandardProperties;
#[derive(Debug)]
pub struct PlainList<'s> {
pub source: &'s str,
pub affiliated_keywords: Vec<Keyword<'s>>,
pub affiliated_keywords: AffiliatedKeywords<'s>,
pub name: Option<&'s str>,
pub list_type: PlainListType,
pub children: Vec<PlainListItem<'s>>,

View File

@@ -1,3 +1,4 @@
mod affiliated_keyword;
mod ast_node;
mod document;
mod element;
@@ -9,6 +10,9 @@ mod object;
mod source;
mod standard_properties;
mod util;
pub use affiliated_keyword::AffiliatedKeyword;
pub use affiliated_keyword::AffiliatedKeywordValue;
pub use affiliated_keyword::AffiliatedKeywords;
pub(crate) use ast_node::AstNode;
pub use document::Document;
pub use document::DocumentElement;