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};