feat(rust): migrate high-level runtime paths
Move long-distance matching and high-level decompression from C shims into Rust. The decoder now owns context, dictionary, parameter, one-shot, and buffered streaming state while C retains allocation/configuration, legacy, and trace leaves. Move CLI parsing, safety policy, and dispatch into a separate Rust static archive. Keeping it separate prevents library builds from retaining FIO symbols, while C continues to own file opening, replacement, and I/O. Program targets now select matching compression/decompression archives. The remaining C boundary is intentional: high-level compression, optimal parsing, dictionary building, legacy callbacks, and CLI file I/O still need migration. Test Plan: - cargo test --all-targets (native and i686) - cargo test --all-targets in rust/cli (native and i686) - CLI crate compression-only and decompression-only feature tests - native and i686 fuzzer/zstreamtest runs, plus legacy and dictionary tests - ZSTD_C_PREDICT and ZSTD_HEAPMODE=0 fuzzer coverage - library, dynamic-link, and program-target build/round-trip matrix Refs: rust/README.md
This commit is contained in:
@@ -501,6 +501,11 @@ void FIO_setNbFilesTotal(FIO_ctx_t* const fCtx, int value)
|
||||
fCtx->nbFilesTotal = value;
|
||||
}
|
||||
|
||||
void FIO_setHasStdinInput(FIO_ctx_t* const fCtx, int value)
|
||||
{
|
||||
fCtx->hasStdinInput = value != 0;
|
||||
}
|
||||
|
||||
void FIO_determineHasStdinInput(FIO_ctx_t* const fCtx, const FileNamesTable* const filenames) {
|
||||
size_t i = 0;
|
||||
for ( ; i < filenames->tableSize; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user