pub struct PmcArticle {
pub article_type: Option<String>,
pub front: Front,
pub body: Option<Body>,
pub back: Option<Back>,
pub supplementary_materials: Vec<SupplementaryMaterial>,
pub data_availability: Option<String>,
}Expand description
PMC full-text article.
Maps to JATS <article>: front, body?, back?.
DTD: https://jats.nlm.nih.gov/archiving/tag-library/1.4/element/article.html
Fields§
§article_type: Option<String>Article type. From <article article-type="..."> attribute.
front: FrontFront matter. From <front>.
body: Option<Body>Article body. From <body>. None when the article has no body
(e.g., metadata-only records).
back: Option<Back>Back matter. From <back>. None when the article has no back matter.
supplementary_materials: Vec<SupplementaryMaterial>Supplementary materials. From <supplementary-material>, collected
from the entire document (<body> sections, <back>, or <floats-group>).
data_availability: Option<String>Data availability statement. From <sec sec-type="data-availability">
or <notes notes-type="data-availability">, wherever it appears.
Implementations§
Source§impl PmcArticle
impl PmcArticle
Authors.
Sourcepub fn journal(&self) -> &JournalMeta
pub fn journal(&self) -> &JournalMeta
Journal metadata.
Sourcepub fn pub_dates(&self) -> &[PublicationDate]
pub fn pub_dates(&self) -> &[PublicationDate]
Publication dates.
Sourcepub fn categories(&self) -> &[String]
pub fn categories(&self) -> &[String]
Subject categories.
Sourcepub fn funding(&self) -> &[FundingInfo]
pub fn funding(&self) -> &[FundingInfo]
Funding information.
Sourcepub fn history(&self) -> &[HistoryDate]
pub fn history(&self) -> &[HistoryDate]
Publication history dates.
Sourcepub fn abstract_text(&self) -> Option<&str>
pub fn abstract_text(&self) -> Option<&str>
Text of the main abstract (first <abstract>), if present.
Sourcepub fn license_text(&self) -> Option<&str>
pub fn license_text(&self) -> Option<&str>
License text, if present.
Sourcepub fn license_url(&self) -> Option<&str>
pub fn license_url(&self) -> Option<&str>
License URL, if present.
Sourcepub fn references(&self) -> &[Reference]
pub fn references(&self) -> &[Reference]
References (empty slice when the article has no back matter).
Sourcepub fn acknowledgments(&self) -> Option<&str>
pub fn acknowledgments(&self) -> Option<&str>
Acknowledgments, if present.
Sourcepub fn conflict_of_interest(&self) -> Option<&str>
pub fn conflict_of_interest(&self) -> Option<&str>
Conflict of interest statement, if present.
Sourcepub fn get_tar_files(&self) -> Vec<&SupplementaryMaterial>
pub fn get_tar_files(&self) -> Vec<&SupplementaryMaterial>
Get tar files from supplementary materials.
Sourcepub fn get_archive_files(&self) -> Vec<&SupplementaryMaterial>
pub fn get_archive_files(&self) -> Vec<&SupplementaryMaterial>
Get all archive files from supplementary materials.
Sourcepub fn has_supplementary_materials(&self) -> bool
pub fn has_supplementary_materials(&self) -> bool
Check if the article has supplementary materials.
Sourcepub fn get_supplementary_materials_by_type(
&self,
content_type: &str,
) -> Vec<&SupplementaryMaterial>
pub fn get_supplementary_materials_by_type( &self, content_type: &str, ) -> Vec<&SupplementaryMaterial>
Get supplementary materials by content type.
Source§impl PmcArticle
impl PmcArticle
Sourcepub fn all_sections(&self) -> SectionIter<'_> ⓘ
pub fn all_sections(&self) -> SectionIter<'_> ⓘ
Iterate every body section in the article, flattened depth-first in document order (parent before children).
This walks the entire <body> section tree so callers don’t have to
recurse through Section::subsections manually.
Sourcepub fn sections_of_kind(&self, kind: &SectionKind) -> Vec<&Section>
pub fn sections_of_kind(&self, kind: &SectionKind) -> Vec<&Section>
All body sections whose semantic SectionKind matches kind
(recursive). For example, article.sections_of_kind(&SectionKind::Methods).
Sourcepub fn sections_by_type(&self, sec_type: &str) -> Vec<&Section>
pub fn sections_by_type(&self, sec_type: &str) -> Vec<&Section>
All body sections whose raw sec-type equals sec_type
(case-insensitive, recursive).
Sourcepub fn find_section_by_title(&self, keyword: &str) -> Option<&Section>
pub fn find_section_by_title(&self, keyword: &str) -> Option<&Section>
First body section whose title contains keyword (case-insensitive,
recursive). Handy for locating sections like “Statistical analysis”.
Sourcepub fn all_figures(&self) -> Vec<&Figure>
pub fn all_figures(&self) -> Vec<&Figure>
All figures across the whole article body (recursive over sections).
Sourcepub fn all_tables(&self) -> Vec<&Table>
pub fn all_tables(&self) -> Vec<&Table>
All tables across the whole article body (recursive over sections).
Sourcepub fn all_formulas(&self) -> Vec<&Formula>
pub fn all_formulas(&self) -> Vec<&Formula>
All display formulas across the whole article body (recursive).
Sourcepub fn all_cited_reference_ids(&self) -> Vec<&String>
pub fn all_cited_reference_ids(&self) -> Vec<&String>
All cited reference ids across the whole article body, in document order
(recursive over sections). Each id targets a Reference::id in
Back::references. See Section::cited_reference_ids.
Sourcepub fn figure_count(&self) -> usize
pub fn figure_count(&self) -> usize
Number of figures in the article body.
Sourcepub fn table_count(&self) -> usize
pub fn table_count(&self) -> usize
Number of tables in the article body.
Sourcepub fn body_text(&self) -> String
pub fn body_text(&self) -> String
Concatenated plain text of the whole article body, in reading order.
Section titles and paragraph content are joined with blank lines. Useful as a single input string for tokenizers, embeddings, or full-text search.
Sourcepub fn abstracts(&self) -> &[Abstract]
pub fn abstracts(&self) -> &[Abstract]
All abstracts (a JATS article may have several, e.g. a main and a graphical abstract).
Sourcepub fn abstract_sections(&self) -> &[AbstractSection]
pub fn abstract_sections(&self) -> &[AbstractSection]
Structured sections of the main (first) abstract, if it is structured.
Sourcepub fn references_with_pmid(&self) -> Vec<&Reference>
pub fn references_with_pmid(&self) -> Vec<&Reference>
References that carry a PubMed ID (useful for building citation graphs).
Sourcepub fn references_with_doi(&self) -> Vec<&Reference>
pub fn references_with_doi(&self) -> Vec<&Reference>
References that carry a DOI.
Sourcepub fn references_by_type(&self, pub_type: &str) -> Vec<&Reference>
pub fn references_by_type(&self, pub_type: &str) -> Vec<&Reference>
References whose publication_type equals pub_type (case-insensitive).
Sourcepub fn appendices(&self) -> &[Section]
pub fn appendices(&self) -> &[Section]
Appendices (empty slice when the article has no back matter).
Sourcepub fn glossary(&self) -> &[Definition]
pub fn glossary(&self) -> &[Definition]
Glossary / abbreviation definitions (empty slice when absent).
Sourcepub fn supplementary_materials(&self) -> &[SupplementaryMaterial]
pub fn supplementary_materials(&self) -> &[SupplementaryMaterial]
Supplementary materials attached to the article.
Sourcepub fn data_availability(&self) -> Option<&str>
pub fn data_availability(&self) -> Option<&str>
Data availability statement, if present.
Sourcepub fn keyword_groups(&self) -> &[KeywordGroup]
pub fn keyword_groups(&self) -> &[KeywordGroup]
Keyword groups (structured, with kwd-group-type / language).
Sourcepub fn subject_groups(&self) -> &[SubjectGroup]
pub fn subject_groups(&self) -> &[SubjectGroup]
Subject groups (structured, with subj-group-type).
Related articles (corrections, retractions, companions, …).
Sourcepub fn corrections(&self) -> Vec<&RelatedArticle>
pub fn corrections(&self) -> Vec<&RelatedArticle>
Articles corrected by this one (related-article-type="corrected-article").
Sourcepub fn retractions(&self) -> Vec<&RelatedArticle>
pub fn retractions(&self) -> Vec<&RelatedArticle>
Articles retracted by this one (related-article-type="retracted-article").
Author notes (correspondence / contribution / present-address statements).
Trait Implementations§
Source§impl Clone for PmcArticle
impl Clone for PmcArticle
Source§fn clone(&self) -> PmcArticle
fn clone(&self) -> PmcArticle
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more