rust_releases_io/
lib.rs

1//! Defines i/o data structures and routines used by various [`Source`] implementations
2//!
3//! [`Source`]: https://docs.rs/rust-releases/latest/rust_releases/source/index.html
4#![deny(missing_docs)]
5#![deny(clippy::all)]
6#![deny(unsafe_code)]
7
8mod client;
9mod document;
10mod io;
11
12pub use crate::{
13    client::{ResourceFile, RustReleasesClient},
14    document::{Document, RetrievalLocation, RetrievedDocument},
15    io::{base_cache_dir, is_stale, BaseCacheDirError, IsStaleError},
16};
17
18#[cfg(feature = "http_client")]
19pub use crate::client::cached_client::{CachedClient, CachedClientError};
20
21/// A macro used to feature gate tests which fetch resources from third party services.
22///
23/// NB: for internal use, not covered by semver.
24#[macro_export]
25macro_rules! __internal_dl_test {
26    ($expr:expr) => {{
27        if cfg!(feature = "internal_dl_test") || option_env!("RUST_RELEASES_RUN_DL_TEST").is_some()
28        {
29            $expr
30        }
31    }};
32}