Refactor|PathTree: Compose paths to de::Uri instead of de::String
Composing the paths to Uri rather than String presents several opportunities to improve both the design and performance of the whole virtual file system. (should a string representation be required it can be trivially obtained with Uri::compose()).
As PathTree is already aware of the path fragment hashes (they are produced in the process of building the tree), these can now be passed on to the composed Uri.
Uri should now be redesigned so that the internal representation is modelled as a list of path fragments with associated hashes. (in the process, improving the performance of Uri as these same hashes can be used internally to accelerate Uri comparisons).
This will in turn mean that PathMap is made redundant.
Once these refactorings are completed, a fully composed path will be necessary only when populating the PathTree or when displaying the path to the user (e.g., logging, console).
Refactor|PathTree: Compose paths to de::Uri instead of de::String
Composing the paths to Uri rather than String presents several
opportunities to improve both the design and performance of the
whole virtual file system. (should a string representation be
required it can be trivially obtained with Uri::compose()).
As PathTree is already aware of the path fragment hashes (they
are produced in the process of building the tree), these can now
be passed on to the composed Uri.
Uri should now be redesigned so that the internal representation
is modelled as a list of path fragments with associated hashes.
(in the process, improving the performance of Uri as these same
hashes can be used internally to accelerate Uri comparisons).
This will in turn mean that PathMap is made redundant.
Once these refactorings are completed, a fully composed path will
be necessary only when populating the PathTree or when displaying
the path to the user (e.g., logging, console).