- Interop (AsRef): use
interop_path() on StrictPath, VirtualPath, PathBoundary, and VirtualRoot. It borrows the underlying OS path without allocations.
- Display to users:
- System paths: use
strictpath_display() (on StrictPath/PathBoundary).
- Virtual UI paths: use
virtualpath_display() (on VirtualPath).
- Never use
interop_path().to_string_lossy() for display—mixes concerns and may leak internals.
- Do not wrap secure types with
Path::new or PathBuf::from.
- Directory discovery vs validation:
- Discover children via
read_dir(root.interop_path()) or root helpers.
- Re-validate names with
strict_join()/virtual_join() before any I/O.