diff options
author | HampusM <hampus@hampusmat.com> | 2023-02-26 12:12:07 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2023-02-26 12:12:07 +0100 |
commit | 2d633644a53dfe278b681a911b2eaea1230a07cc (patch) | |
tree | f493c209707df57a3f12398191f0a87dbabd8523 /src/description.rs | |
parent | e225d7344cef05f03676f6579415999478328ead (diff) |
feat: add itemized list support
Diffstat (limited to 'src/description.rs')
-rw-r--r-- | src/description.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/description.rs b/src/description.rs index dfa521b..f536b4f 100644 --- a/src/description.rs +++ b/src/description.rs @@ -1,4 +1,5 @@ //! Reference entry description. +use crate::itemized_list::{Error as ItemizedListError, ItemizedList}; use crate::variable_list::{Error as VariableListError, VariableList}; use crate::xml::element::{Elements, FromElements, Tagged}; @@ -164,6 +165,9 @@ pub enum ParagraphPart /// Variable list part. VariableList(VariableList), + + /// Itemized list part. + ItemizedList(ItemizedList), } impl FromElements for ParagraphPart @@ -195,7 +199,7 @@ impl ParagraphPart "function" => Self::Function, "parameter" => Self::Parameter, "citerefentry" => Self::Entry, - "variablelist" => |_| { + "variablelist" | "itemizedlist" => |_| { unreachable!(); }, _ => { @@ -226,6 +230,13 @@ impl ParagraphPart return Ok(Self::VariableList(variable_list)); } + if tagged_element.name() == "itemizedlist" { + let itemized_list = + ItemizedList::from_elements(tagged_element.child_elements())?; + + return Ok(Self::ItemizedList(itemized_list)); + } + let text_element = tagged_element .child_elements() .get_first_text_element() @@ -258,4 +269,8 @@ pub enum ParagraphPartError /// Invalid variable list. #[error("Invalid variable list")] InvalidVariableList(#[from] VariableListError), + + /// Invalid itemized list. + #[error("Invalid itemized list")] + InvalidItemizedList(#[from] ItemizedListError), } |