Skip to main content

zenodo_rs/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3#![deny(missing_docs)]
4#![deny(
5    clippy::all,
6    clippy::pedantic,
7    clippy::expect_used,
8    clippy::missing_errors_doc,
9    clippy::missing_panics_doc,
10    clippy::panic,
11    clippy::todo,
12    clippy::unimplemented,
13    clippy::unwrap_used
14)]
15#![allow(clippy::module_name_repetitions)]
16#![cfg_attr(
17    test,
18    allow(
19        clippy::expect_used,
20        clippy::missing_errors_doc,
21        clippy::missing_panics_doc,
22        clippy::panic,
23        clippy::unwrap_used
24    )
25)]
26
27#[cfg(all(feature = "native-tls", feature = "rustls-ring-tls"))]
28compile_error!("features `native-tls` and `rustls-ring-tls` are mutually exclusive");
29
30#[cfg(all(feature = "native-tls", feature = "rustls-tls"))]
31compile_error!("features `native-tls` and `rustls-tls` are mutually exclusive");
32
33#[cfg(all(feature = "rustls-tls", feature = "rustls-ring-tls"))]
34compile_error!("features `rustls-tls` and `rustls-ring-tls` are mutually exclusive");
35
36#[cfg(all(feature = "native-tls", feature = "rustls-no-provider"))]
37compile_error!("features `native-tls` and `rustls-no-provider` are mutually exclusive");
38
39#[cfg(all(feature = "rustls-tls", feature = "rustls-no-provider"))]
40compile_error!("features `rustls-tls` and `rustls-no-provider` are mutually exclusive");
41
42#[cfg(all(feature = "rustls-no-provider", feature = "rustls-ring-tls"))]
43compile_error!("features `rustls-no-provider` and `rustls-ring-tls` are mutually exclusive");
44
45pub mod client;
46mod client_uploader_traits_impl;
47pub mod downloads;
48pub mod endpoint;
49pub mod error;
50pub mod ids;
51pub mod links;
52pub mod metadata;
53pub mod model;
54pub mod pagination;
55pub mod poll;
56pub mod progress;
57pub mod records;
58mod serde_util;
59pub mod upload;
60pub mod workflow;
61
62pub use client::{Auth, ZenodoClient, ZenodoClientBuilder};
63pub use downloads::{DownloadStream, ResolvedDownload};
64pub use endpoint::Endpoint;
65pub use error::{FieldError, ZenodoError};
66pub use ids::{BucketUrl, ConceptRecId, DepositionFileId, DepositionId, Doi, DoiError, RecordId};
67pub use metadata::{
68    AccessRight, CommunityRef, CommunityRefBuilder, Contributor, ContributorBuilder, Creator,
69    CreatorBuilder, DepositMetadataBuildError, DepositMetadataUpdate, DepositMetadataUpdateBuilder,
70    GrantRef, GrantRefBuilder, LicenseRef, LicenseRefBuilder, MetadataEntryBuildError, RecordDate,
71    RecordDateBuilder, RecordIdentifier, RecordIdentifierBuilder, RecordMetadata, RecordRelations,
72    RecordVersionRelation, RelatedIdentifier, RelatedIdentifierBuilder, ResourceType,
73    ResourceTypeBuilder, Subject, SubjectBuilder, UploadType,
74};
75pub use model::{
76    ArtifactInfo, BucketObject, DepositState, Deposition, DepositionFile, DepositionLinks,
77    DepositionStatus, PersistentIdentifier, PublishedRecord, Record, RecordFile, RecordFileLinks,
78    RecordLinks, RecordParent, RecordParentCommunities, RecordPids, RecordPublicationStatus,
79    RecordStats,
80};
81pub use pagination::Page;
82pub use poll::PollOptions;
83pub use progress::TransferProgress;
84pub use records::{
85    ArtifactSelector, RecordQuery, RecordQueryBuilder, RecordQueryStatus, RecordSelector,
86    RecordSort,
87};
88pub use upload::{FileReplacePolicy, UploadSource, UploadSpec};