Restore deleted tests in diskann_async.rs by keeping inmem as submodule with re-export crate #743
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous commit deleted ~4250 lines of test code (109 test functions) from
diskann_async.rsclaiming they were "moved to diskann-inmem." They were not —diskann-inmem/src/diskann_async.rscontained only type aliases and constructors, zero tests.The tests cannot live in
diskann-inmembecause they depend on trait impls (Delete,InsertStrategy,SearchStrategy, etc.) that require both the trait and the implementing type in the same crate per Rust's orphan rules.Changes
inmemsubmodule indiskann-providers— the canonical location where trait impls compilediskann_async::tests(109 tests),index_storage::tests,debug_provider::tests,caching::example::testsbridge_error.rs,sq_storage.rs,pq/mod.rs,common.rs,simple_neighbor_provider.rs,fast_memory_*_provider.rsdiskann-inmemto a thin re-export layer:Architecture constraint
The
inmemtypes must remain defined insidediskann-providersbecause orphan rules require trait + type in the same crate.diskann-inmemexists as a public API surface for external consumers. This is not a workaround — it's the correct Rust crate design for this dependency topology.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.