Struct PmcArticle
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§
§impl PmcArticle
impl PmcArticle
Authors.
pub fn journal(&self) -> &JournalMeta
pub fn journal(&self) -> &JournalMeta
Journal metadata.
pub fn pub_dates(&self) -> &[PublicationDate]
pub fn pub_dates(&self) -> &[PublicationDate]
Publication dates.
pub fn categories(&self) -> &[String]
pub fn categories(&self) -> &[String]
Subject categories.
pub fn funding(&self) -> &[FundingInfo]
pub fn funding(&self) -> &[FundingInfo]
Funding information.
pub fn history(&self) -> &[HistoryDate]
pub fn history(&self) -> &[HistoryDate]
Publication history dates.
pub fn abstract_text(&self) -> Option<&str>
pub fn abstract_text(&self) -> Option<&str>
Text of the main abstract (first <abstract>), if present.
pub fn license_text(&self) -> Option<&str>
pub fn license_text(&self) -> Option<&str>
License text, if present.
pub fn license_url(&self) -> Option<&str>
pub fn license_url(&self) -> Option<&str>
License URL, if present.
pub fn references(&self) -> &[Reference]
pub fn references(&self) -> &[Reference]
References (empty slice when the article has no back matter).
pub fn acknowledgments(&self) -> Option<&str>
pub fn acknowledgments(&self) -> Option<&str>
Acknowledgments, if present.
pub fn conflict_of_interest(&self) -> Option<&str>
pub fn conflict_of_interest(&self) -> Option<&str>
Conflict of interest statement, if present.
pub fn get_tar_files(&self) -> Vec<&SupplementaryMaterial>
pub fn get_tar_files(&self) -> Vec<&SupplementaryMaterial>
Get tar files from supplementary materials.
pub fn get_archive_files(&self) -> Vec<&SupplementaryMaterial>
pub fn get_archive_files(&self) -> Vec<&SupplementaryMaterial>
Get all archive files from supplementary materials.
pub fn has_supplementary_materials(&self) -> bool
pub fn has_supplementary_materials(&self) -> bool
Check if the article has supplementary materials.
pub 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.
§impl PmcArticle
impl PmcArticle
pub 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.
pub 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).
pub 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).
pub 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”.
pub fn all_figures(&self) -> Vec<&Figure>
pub fn all_figures(&self) -> Vec<&Figure>
All figures across the whole article body (recursive over sections).
pub fn all_tables(&self) -> Vec<&Table>
pub fn all_tables(&self) -> Vec<&Table>
All tables across the whole article body (recursive over sections).
pub fn all_formulas(&self) -> Vec<&Formula>
pub fn all_formulas(&self) -> Vec<&Formula>
All display formulas across the whole article body (recursive).
pub 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.
pub fn figure_count(&self) -> usize
pub fn figure_count(&self) -> usize
Number of figures in the article body.
pub fn table_count(&self) -> usize
pub fn table_count(&self) -> usize
Number of tables in the article body.
pub 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.
pub 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).
pub fn abstract_sections(&self) -> &[AbstractSection]
pub fn abstract_sections(&self) -> &[AbstractSection]
Structured sections of the main (first) abstract, if it is structured.
pub 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).
pub fn references_with_doi(&self) -> Vec<&Reference>
pub fn references_with_doi(&self) -> Vec<&Reference>
References that carry a DOI.
pub 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).
pub fn appendices(&self) -> &[Section]
pub fn appendices(&self) -> &[Section]
Appendices (empty slice when the article has no back matter).
pub fn glossary(&self) -> &[Definition]
pub fn glossary(&self) -> &[Definition]
Glossary / abbreviation definitions (empty slice when absent).
pub fn supplementary_materials(&self) -> &[SupplementaryMaterial]
pub fn supplementary_materials(&self) -> &[SupplementaryMaterial]
Supplementary materials attached to the article.
pub fn data_availability(&self) -> Option<&str>
pub fn data_availability(&self) -> Option<&str>
Data availability statement, if present.
pub fn keyword_groups(&self) -> &[KeywordGroup]
pub fn keyword_groups(&self) -> &[KeywordGroup]
Keyword groups (structured, with kwd-group-type / language).
pub fn subject_groups(&self) -> &[SubjectGroup]
pub fn subject_groups(&self) -> &[SubjectGroup]
Subject groups (structured, with subj-group-type).
Related articles (corrections, retractions, companions, …).
pub fn corrections(&self) -> Vec<&RelatedArticle>
pub fn corrections(&self) -> Vec<&RelatedArticle>
Articles corrected by this one (related-article-type="corrected-article").
pub 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§
§impl Clone for PmcArticle
impl Clone for PmcArticle
§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§impl Debug for PmcArticle
impl Debug for PmcArticle
§impl<'de> Deserialize<'de> for PmcArticle
impl<'de> Deserialize<'de> for PmcArticle
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PmcArticle, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PmcArticle, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for PmcArticle
impl PartialEq for PmcArticle
§impl Serialize for PmcArticle
impl Serialize for PmcArticle
§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 PmcArticle
Auto Trait Implementations§
impl Freeze for PmcArticle
impl RefUnwindSafe for PmcArticle
impl Send for PmcArticle
impl Sync for PmcArticle
impl Unpin for PmcArticle
impl UnwindSafe for PmcArticle
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