Struct Section
pub struct Section {
pub id: Option<String>,
pub section_type: Option<String>,
pub label: Option<String>,
pub title: Option<String>,
pub content: String,
pub subsections: Vec<Section>,
pub figures: Vec<Figure>,
pub tables: Vec<Table>,
pub formulas: Vec<Formula>,
pub cited_reference_ids: Vec<String>,
}Expand description
Article section.
Maps to JATS <sec>. Sections form a recursive tree via subsections.
Figures, tables, and formulas that appear inline within the section are
collected in their respective fields.
Fields§
§id: Option<String>Section ID. From <sec id="...">.
section_type: Option<String>Section type. From <sec sec-type="...">.
Common values: "intro", "methods", "results", "discussion",
"conclusions", "supplementary-material", "data-availability".
label: Option<String>Section label/number (e.g., “1.”, “2.1”). From <label>.
title: Option<String>Section title. From <title>.
content: StringConcatenated paragraph text. From <p> elements.
subsections: Vec<Section>Nested subsections. From child <sec> elements.
figures: Vec<Figure>Figures within this section. From <fig> elements.
tables: Vec<Table>Tables within this section. From <table-wrap> elements.
formulas: Vec<Formula>Display formulas within this section. From <disp-formula> elements.
cited_reference_ids: Vec<String>Reference ids cited in this section’s paragraphs, in document order.
From <xref ref-type="bibr" rid="...">; each id targets a
Reference::id in Back::references, so consumers can join the two
for citation-context / citation-graph analysis. A grouped citation
(rid="B1 B2") contributes each id separately.
Implementations§
§impl Section
impl Section
pub fn kind(&self) -> SectionKind
pub fn kind(&self) -> SectionKind
Semantic classification of this section’s sec-type.
pub fn iter_subtree(&self) -> SectionIter<'_> ⓘ
pub fn iter_subtree(&self) -> SectionIter<'_> ⓘ
Iterate this section and all of its nested subsections, depth-first in document order (pre-order: parent before children).
pub fn all_figures(&self) -> Vec<&Figure>
pub fn all_figures(&self) -> Vec<&Figure>
All figures in this section and its subsections (recursive).
pub fn all_tables(&self) -> Vec<&Table>
pub fn all_tables(&self) -> Vec<&Table>
All tables in this section and its subsections (recursive).
pub fn all_formulas(&self) -> Vec<&Formula>
pub fn all_formulas(&self) -> Vec<&Formula>
All display formulas in this section and its subsections (recursive).
pub fn all_cited_reference_ids(&self) -> Vec<&String>
pub fn all_cited_reference_ids(&self) -> Vec<&String>
All cited reference ids in this section and its subsections (recursive),
in document order. See Section::cited_reference_ids.
pub fn word_count(&self) -> usize
pub fn word_count(&self) -> usize
Whitespace-delimited word count of this section’s own content
(not including subsections). Useful for readability/length metrics.
Trait Implementations§
§impl<'de> Deserialize<'de> for Section
impl<'de> Deserialize<'de> for Section
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Section, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Section, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for Section
impl Serialize for Section
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for Section
Auto Trait Implementations§
impl Freeze for Section
impl RefUnwindSafe for Section
impl Send for Section
impl Sync for Section
impl Unpin for Section
impl UnwindSafe for Section
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more