refactor: introduce opaque NativePath type for PathAccess#177
Merged
branchseer merged 1 commit intomainfrom Mar 1, 2026
Merged
refactor: introduce opaque NativePath type for PathAccess#177branchseer merged 1 commit intomainfrom
branchseer merged 1 commit intomainfrom
Conversation
On Windows, tracked paths are NT Object Manager paths (`\??` prefix), whose raw data is not meaningful for direct consumption. Introduce NativePath as an opaque wrapper over NativeStr that only exposes `strip_path_prefix`, which normalizes platform differences and extracts a workspace-relative path. - Add NativePath in new native_path.rs with strip_path_prefix and clone_in - Change PathAccess.path from &NativeStr to &NativePath - Make native_str module pub(crate) to prevent external raw access - Update sender-side callbacks to use (AccessMode, &Path) directly - Refactor consumers to use strip_path_prefix API Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fengmk2
approved these changes
Feb 28, 2026
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.

Summary
NativePathtype wrappingNativeStrin newnative_path.rs\??prefix) whose raw data is not meaningful for direct consumption.NativePathonly exposesstrip_path_prefix, which normalizes platform differences and extracts a workspace-relative pathPathAccess.pathfrom&NativeStrto&NativePathand makenative_strmodulepub(crate)(AccessMode, &Path)directly instead ofPathAccessstrip_path_prefixAPITest plan
cargo check --all-targetspassesjust lintpassesjust fmtpassescargo testpasses🤖 Generated with Claude Code