Relative-only paths
ForNeVeR opened this issue · 0 comments
ForNeVeR commented
Currently, we have the following two types for paths:
AbsolutePath
for, well, absolute paths,LocalPath
for any paths.
We lack a separate type to specify a relative-only type, so let's get one. @PaGrom makes a good argument on its existence, see #1 (comment).
I propose the following design:
struct RelativePath
{
public RelativePath(string path, bool trimLeadingSlash = false) { … }
}
Examples:
new RelativePath("foo/bar") // => foo/bar
new RelativePath("/foo/bar", trimLeadingSlash = true) // => foo/bar
new RelativePath("/foo/bar"); // exception
Whether trimLeadingSlash
should be true
or false
by default I am not sure. @PaGrom, what do you think? I would lean towards more strict behavior by default.
See TODO[#23]
in the project sources when implementing this.