ddidderr
2442fddc38
refactor(fileio): move separate-output routing policy to Rust
Move the separate-destination mode decision into the Rust file-iteration
boundary. The projection now carries the mirror-mode bit and one callback for
each destination policy, so Rust selects the callback once before preserving
the existing non-short-circuiting iteration and aggregate error behavior.
Keep path construction, mirror-directory diagnostics, resource ownership, and
the per-file compression leaf in the opaque C callbacks. Add C/Rust layout
assertions and focused tests proving mirror/flat routing and ordered error
aggregation.
Test Plan:
- `ulimit -v 41943040; cargo +nightly fmt --manifest-path rust/Cargo.toml --all -- --check`
- `ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo clippy --manifest-path rust/Cargo.toml --all-targets -- -D warnings`
- `ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo test --manifest-path rust/Cargo.toml --all-targets` (793 tests)
- `ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo clippy --manifest-path rust/cli/Cargo.toml --all-targets -- -D warnings`
- `ulimit -v 41943040; CARGO_BUILD_JOBS=1 cargo test --manifest-path rust/cli/Cargo.toml --all-targets` (184 tests)
- `ulimit -v 41943040; make -j1`
- `ulimit -v 41943040; make -j1 -C tests test`
2026-07-20 08:41:31 +02:00
..
2026-07-18 18:04:11 +02:00
2026-07-11 14:26:21 +02:00
2026-07-18 01:47:33 +02:00
2026-07-10 20:44:02 +02:00
2026-07-10 20:02:17 +02:00
2026-07-10 20:02:17 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 09:16:42 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 18:06:51 +02:00
2026-07-20 05:22:25 +02:00
2026-07-20 05:22:25 +02:00
2026-07-18 15:58:59 +02:00
2026-07-11 14:23:39 +02:00
2026-07-10 20:04:26 +02:00
2026-07-10 20:02:17 +02:00
2026-07-20 08:41:31 +02:00
2026-07-18 21:46:36 +02:00
2026-07-20 08:21:27 +02:00
2026-07-10 20:44:02 +02:00
2026-07-10 20:04:26 +02:00
2026-07-10 20:06:25 +02:00
2026-07-12 09:13:10 +02:00
2026-07-10 20:48:51 +02:00
2026-07-18 08:08:40 +02:00
2026-07-12 09:16:59 +02:00
2026-07-18 16:14:20 +02:00
2026-07-10 22:38:07 +02:00
2026-07-10 20:05:35 +02:00
2026-07-11 14:25:32 +02:00
2026-07-18 02:52:26 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 09:59:58 +02:00
2026-07-18 18:56:29 +02:00
2026-07-10 20:02:17 +02:00
2026-07-18 09:26:44 +02:00
2026-07-18 20:48:11 +02:00
2026-07-20 04:05:14 +02:00
2026-07-20 00:06:44 +02:00
2026-07-11 23:11:57 +02:00
2026-07-19 16:53:31 +02:00
2026-07-19 21:56:28 +02:00
2026-07-10 22:44:39 +02:00
2026-07-18 20:48:11 +02:00
2026-07-11 23:11:57 +02:00
2026-07-20 08:21:06 +02:00
2026-07-10 21:20:50 +02:00
2026-07-18 23:46:08 +02:00
2026-07-20 02:35:27 +02:00
2026-07-18 17:13:27 +02:00
2026-07-19 18:27:52 +02:00
2026-07-11 08:06:30 +02:00
2026-07-20 06:21:22 +02:00
2026-07-11 08:22:41 +02:00
2026-07-18 17:13:27 +02:00
2026-07-10 21:28:56 +02:00
2026-07-18 18:00:42 +02:00
2026-07-20 07:31:23 +02:00