diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 787eee4298d..e98b5afae04 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,13 +18,15 @@ jobs: - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: nightly profile: minimal override: true components: rustfmt, rust-src - name: Build Documentation - run: cargo doc --features full --no-deps + run: cargo doc --lib --features full --no-deps + env: + RUSTDOCFLAGS: --cfg docsrs - name: Deploy if: github.ref == 'refs/heads/main' diff --git a/Cargo.toml b/Cargo.toml index ca273775b40..ce97f8fad0c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,6 +71,10 @@ flate2 = "1" doc-comment = "0.3" crossbeam-channel = "0.5.1" +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] + [features] default = [] full = [ diff --git a/src/compute/aggregate/simd/mod.rs b/src/compute/aggregate/simd/mod.rs index f0eb971f27d..ac0cbc942de 100644 --- a/src/compute/aggregate/simd/mod.rs +++ b/src/compute/aggregate/simd/mod.rs @@ -5,4 +5,5 @@ pub use native::*; #[cfg(feature = "simd")] mod packed; #[cfg(feature = "simd")] +#[cfg_attr(docsrs, doc(cfg(feature = "simd")))] pub use packed::*; diff --git a/src/compute/cast/primitive_to.rs b/src/compute/cast/primitive_to.rs index c5ba3e5b080..508c989a2ca 100644 --- a/src/compute/cast/primitive_to.rs +++ b/src/compute/cast/primitive_to.rs @@ -323,6 +323,7 @@ where } #[cfg(feature = "chrono-tz")] +#[cfg_attr(docsrs, doc(cfg(feature = "chrono-tz")))] fn chrono_tz_timestamp_to_utf8( from: &PrimitiveArray, time_unit: TimeUnit, diff --git a/src/compute/mod.rs b/src/compute/mod.rs index 332905b405d..f117cd426b2 100644 --- a/src/compute/mod.rs +++ b/src/compute/mod.rs @@ -31,9 +31,12 @@ mod utils; pub mod window; #[cfg(feature = "regex")] +#[cfg_attr(docsrs, doc(cfg(feature = "regex")))] pub mod like; #[cfg(feature = "regex")] +#[cfg_attr(docsrs, doc(cfg(feature = "regex")))] pub mod regex_match; #[cfg(feature = "merge_sort")] +#[cfg_attr(docsrs, doc(cfg(feature = "merge_sort")))] pub mod merge_sort; diff --git a/src/io/ipc/compression.rs b/src/io/ipc/compression.rs index 2b25fdd41f0..3598d869c16 100644 --- a/src/io/ipc/compression.rs +++ b/src/io/ipc/compression.rs @@ -1,6 +1,7 @@ use crate::error::Result; #[cfg(feature = "io_ipc_compression")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_ipc_compression")))] pub fn decompress_lz4(input_buf: &[u8], output_buf: &mut [u8]) -> Result<()> { use std::io::Read; let mut decoder = lz4::Decoder::new(input_buf)?; @@ -8,6 +9,7 @@ pub fn decompress_lz4(input_buf: &[u8], output_buf: &mut [u8]) -> Result<()> { } #[cfg(feature = "io_ipc_compression")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_ipc_compression")))] pub fn decompress_zstd(input_buf: &[u8], output_buf: &mut [u8]) -> Result<()> { use std::io::Read; let mut decoder = zstd::Decoder::new(input_buf)?; diff --git a/src/io/mod.rs b/src/io/mod.rs index 9bef55f8ebd..94c7a2f471b 100644 --- a/src/io/mod.rs +++ b/src/io/mod.rs @@ -1,18 +1,24 @@ //! Interact with different formats such as Arrow, CSV, parquet, etc. #[cfg(feature = "io_csv")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_csv")))] pub mod csv; #[cfg(feature = "io_json")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_json")))] pub mod json; #[cfg(feature = "io_ipc")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_ipc")))] pub mod ipc; #[cfg(feature = "io_json_integration")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_json_integration")))] pub mod json_integration; #[cfg(feature = "io_parquet")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_parquet")))] pub mod parquet; #[cfg(feature = "io_print")] +#[cfg_attr(docsrs, doc(cfg(feature = "io_print")))] pub mod print; diff --git a/src/lib.rs b/src/lib.rs index d2833904d4d..272f17afaae 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,7 @@ //! Doc provided by README +#![cfg_attr(docsrs, feature(doc_cfg))] + pub mod alloc; #[macro_use] pub mod array; @@ -12,6 +14,7 @@ pub mod trusted_len; pub mod types; #[cfg(feature = "compute")] +#[cfg_attr(docsrs, doc(cfg(feature = "compute")))] pub mod compute; pub mod io; pub mod record_batch; diff --git a/src/util/mod.rs b/src/util/mod.rs index 4062ed2bdfb..996134d35a6 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -6,4 +6,5 @@ mod lexical; pub use lexical::*; #[cfg(feature = "benchmarks")] +#[cfg_attr(docsrs, doc(cfg(feature = "benchmarks")))] pub mod bench_util;