Skip to main content

doiget_core/sources/
mod.rs

1//! Source implementations.
2//!
3//! Each source is a concrete `Source` trait impl. Per `docs/SOURCES.md` §1:
4//!
5//! - Tier 1 (Open Access, always compiled in): Crossref / Unpaywall / arXiv.
6//! - Tier 2 (metadata enrichment, Phase 4, behind the `metadata` Cargo
7//!   feature): OpenAlex / Semantic Scholar / DOAJ.
8//! - Tier 3 (TDM, Phase 5, behind per-publisher Cargo features):
9//!   Springer Nature OA / APS Harvest / Elsevier ScienceDirect.
10
11pub mod arxiv;
12pub mod crossref;
13pub mod unpaywall;
14
15// ---------------------------------------------------------------------------
16// Tier 2 (Phase 4) — compile-gated by the `metadata` Cargo feature.
17// ---------------------------------------------------------------------------
18
19#[cfg(feature = "metadata")]
20pub mod openalex;
21
22#[cfg(feature = "metadata")]
23pub mod s2;
24
25#[cfg(feature = "metadata")]
26pub mod doaj;
27
28// ---------------------------------------------------------------------------
29// Tier 3 (Phase 5) — compile-gated by per-publisher Cargo features.
30// Default release binaries ship NONE of these; opt-in builds enable one
31// or more via `--features tdm-<publisher>` (ADR-0002).
32// ---------------------------------------------------------------------------
33
34#[cfg(feature = "tdm-springer")]
35pub mod tdm_springer;
36
37#[cfg(feature = "tdm-aps")]
38pub mod tdm_aps;
39
40#[cfg(feature = "tdm-elsevier")]
41pub mod tdm_elsevier;