Skip to main content

entrenar/research/archive/
mod.rs

1//! Archive Deposit for Zenodo/figshare (ENT-027)
2//!
3//! Provides deposit functionality for academic archives like
4//! Zenodo, Figshare, Dryad, and Dataverse.
5
6use regex::Regex;
7use std::sync::LazyLock;
8
9pub mod config;
10pub mod deposit;
11pub mod identifiers;
12pub mod metadata;
13pub mod provider;
14pub mod result;
15
16#[cfg(test)]
17mod tests;
18
19/// DOI validation pattern
20pub(crate) static DOI_REGEX: LazyLock<Regex> =
21    LazyLock::new(|| Regex::new(r"^10\.\d{4,}/[^\s]+$").expect("Invalid DOI regex"));
22
23// Re-export all public types
24pub use config::{FigshareConfig, ZenodoConfig};
25pub use deposit::ArchiveDeposit;
26pub use identifiers::{IdentifierScheme, RelatedIdentifier, RelationType};
27pub use metadata::{DepositMetadata, ResourceType};
28pub use provider::ArchiveProvider;
29pub use result::{validate_doi, DepositError, DepositResult};