Replace programs/fileio_asyncio.c with a declaration-only shim and register Rust's async file-I/O implementation in the library archive. Preserve the C ABI for pool and job contexts, including DEBUGLEVEL pointer-based pthread wrappers, and select separate Rust build configurations for those layouts. Keep ordered-read queue state locked while waiting, drain queued work before shutdown frees job buffers, and use platform large-file seeks for sparse writes. Test Plan: - `cargo test --no-default-features --lib fileio_asyncio` (7 passed). - `cargo test --no-default-features --features debug-pthread --lib fileio_asyncio` (7 passed). - `cargo check --all-targets`, clippy library/benches/tests, and nightly fmt check (passed). - Threaded program build and README round-trip (passed). - `make -C tests poolTests` and `./tests/poolTests` (passed). - Current C shim object defines no `AIO_*` symbols; the Rust archive exports all 20 declarations. - Full standalone all-target Rust tests and the default CLI archive rebuild remain affected by unrelated C/Rust integration and another worker's in-progress benchmark changes.
75 lines
1.9 KiB
Rust
75 lines
1.9 KiB
Rust
#![allow(clippy::missing_safety_doc)]
|
|
|
|
pub mod bits;
|
|
pub mod bitstream;
|
|
pub mod common;
|
|
pub mod cpu;
|
|
pub mod debug;
|
|
#[cfg(feature = "dict-builder")]
|
|
pub mod dict_builder_cover;
|
|
#[cfg(all(feature = "compression", feature = "dict-builder"))]
|
|
pub mod dict_builder_fastcover;
|
|
#[cfg(all(feature = "compression", feature = "dict-builder"))]
|
|
pub mod dict_builder_zdict;
|
|
#[cfg(feature = "dict-builder")]
|
|
pub mod divsufsort;
|
|
pub mod entropy_common;
|
|
pub mod errors;
|
|
pub mod fileio_asyncio;
|
|
#[cfg(feature = "compression")]
|
|
pub mod fse_compress;
|
|
pub mod fse_decompress;
|
|
#[cfg(feature = "compression")]
|
|
pub mod hist;
|
|
#[cfg(feature = "compression")]
|
|
pub mod huf_compress;
|
|
#[cfg(feature = "decompression")]
|
|
pub mod huf_decompress;
|
|
pub mod legacy;
|
|
pub mod mem;
|
|
pub mod pool;
|
|
pub mod threading;
|
|
pub mod xxhash;
|
|
pub mod zbuff;
|
|
pub mod zstd_common;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_api;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_frame;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_literals;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_params;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_params_api;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_sequences;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_stats;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_compress_superblock;
|
|
#[cfg(feature = "decompression")]
|
|
pub mod zstd_ddict;
|
|
#[cfg(feature = "decompression")]
|
|
pub mod zstd_decompress;
|
|
#[cfg(feature = "decompression")]
|
|
pub mod zstd_decompress_block;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_double_fast;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_fast;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_lazy;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_ldm;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_opt;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_opt_tree;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstd_presplit;
|
|
#[cfg(feature = "compression")]
|
|
pub mod zstdmt_compress;
|