Skip to content

Latest commit

 

History

History
58 lines (42 loc) · 1.99 KB

TODO.md

File metadata and controls

58 lines (42 loc) · 1.99 KB

libpath.Rust - TODO

Table of Contents

Functional improvements

The following path semantics remain implementation work and are not part of the boilerplate baseline.

  • Full path support (in libpath::util::windows):
    • Drive-rooted paths;
    • Drive-relative paths;
    • Home-rooted paths;
    • Slash-rooted paths;
    • relative paths;
    • UNC-rooted paths;
    • UNC-incompleted paths;
    • (some of) above with:
      • Local device prefix "\\.\";
      • Root local device prefix "\\?\";
      • Local device prefix and UNC designator "\\.\UNC\";
      • Root local device prefix and UNC designator "\\?\UNC\";
      • NT path prefix "\??\";
    • Device names (such as "COM1");
    • Support (sadly) full flexibility in Windows paths for mixed use of '\' and '/' (though not for runs);
    • Detection of trailing space as invalid character(s);
  • Rename ClassificationResult to PathDescriptor;
  • ~~~Rename ClassificationResult#Entry to #EntryName~~~ - ✅;
  • Remove ClassificationResult#FirstInvalid and use in function calls;
  • Correct handling of entry-names with trailing '.' character(s);
  • Add many and varied test cases with invalid characters / names;
  • Add trait Path that provides access to elements (as &str, etc.);
  • Implement IGNORE_SLASH_RUNS;
  • Implement IGNORE_INVALID_CHARS;
  • Implement RECOGNISE_TILDE_HOME;
  • Implement IGNORE_INVALID_CHARS_IN_LONG_PATH;
  • Implement path normalisation (Unix and Windows) : to_os_normal(), to_asbtract_normal();
  • Remove the redundant libpath::libpath:: namespace;

Performance improvements

  • <none>

Packaging improvements

  • <none>