From 2d633644a53dfe278b681a911b2eaea1230a07cc Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 26 Feb 2023 12:12:07 +0100 Subject: feat: add itemized list support --- src/description.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/description.rs') 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), } -- cgit v1.2.3-18-g5258