Restore deleted tests in diskann_async.rs by keeping inmem as submodule with re-export crate#743
Draft
Restore deleted tests in diskann_async.rs by keeping inmem as submodule with re-export crate#743
Conversation
…iders - Created diskann-inmem crate with moved provider files - Updated imports in moved files (crate:: to diskann_providers::) - Moved orphan-violating impls (NeighborAccessor, NeighborAccessorMut, LoadWith) back to diskann-providers where the types are defined - Re-exported CreateVectorStore from diskann-providers - Added HasStartingPoints trait for generalized SaveWith impls - Removed inmem-specific load functions from diskann-providers (to be added to diskann-inmem) - Removed inmem directory from diskann-providers Co-authored-by: harsha-simhadri <5590673+harsha-simhadri@users.noreply.github.com>
…rate Co-authored-by: harsha-simhadri <5590673+harsha-simhadri@users.noreply.github.com>
…diskann-inmem to diskann-providers to fix orphan rule violations Co-authored-by: harsha-simhadri <5590673+harsha-simhadri@users.noreply.github.com>
- Moved orphan-violating impls (VectorStore for DefaultQuant, SetElementHelper, CreateVectorStore for FixedChunkPQTable) to diskann-providers - Fixed visibility of private methods/traits now needed by diskann-inmem - Generalized SaveWith impls with HasStartingPoints trait - Moved SQError to diskann-providers sq_storage.rs - Created BridgedQueryComputerError wrapper for spherical module - Moved Bridge error conversions to diskann-providers - Documented remaining orphan violations in spherical.rs - Removed inmem-dependent test code from diskann-providers - Added diskann_async module to diskann-inmem with type aliases and constructors Co-authored-by: harsha-simhadri <5590673+harsha-simhadri@users.noreply.github.com>
- Comment out test modules in debug_provider.rs and example.rs that reference removed crate::index::diskann_async::tests helpers - Add diskann-inmem dependency to diskann-disk and diskann-benchmark - Create storage module in diskann-inmem with load_fp_index and load_index - Update imports in diskann-disk (inmem_builder.rs, build.rs, quantizer.rs) - Update imports in diskann-benchmark (benchmarks.rs, build.rs, scalar.rs, product.rs, spherical.rs, streaming/full_precision.rs, inputs/async_.rs) Co-authored-by: harsha-simhadri <5590673+harsha-simhadri@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Move in-mem provider to its own crate
Restore deleted tests in diskann_async.rs by keeping inmem as submodule with re-export crate
Feb 8, 2026
a766edf to
1fd4e09
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.