Path as an object in std.path

Flamaros flamaros.xavier at gmail.com
Thu Jun 6 05:18:52 PDT 2013


On Thursday, 6 June 2013 at 07:26:53 UTC, Flamaros wrote:
> On Wednesday, 5 June 2013 at 06:27:46 UTC, Dylan Knutson wrote:
>> Hello,
>> I'd like to open up the idea of Path being an object in 
>> std.path. I've submitted a pull 
>> (https://github.com/D-Programming-Language/phobos/pull/1333) 
>> that adds a Path struct to std.path, "which exposes a much 
>> more palatable interface to path string manipulation".
>>
>> As jmdavis points out, this has previously been discussed. 
>> However, I can't find that discussion, and I think that the 
>> benefits of including an OO way to deal with paths is a 
>> serious gain for the standard library.
>>
>> Why I think it should be reconsidered for inclusion in the std 
>> (listed in the pull):
>> * Adds a (more) platform independent abstraction for path 
>> strings.
>> * Path provides a type safe way to pass, compare, and 
>> manipulate arbitrary path strings.
>> * It wraps over the functions defined in std.path, so behavior 
>> of methods on Path are, in most cases, identical to their 
>> corresponding module function.
>>
>> I'd like some feedback on what others think about this; I'd 
>> hate to see this commit closed due to a discussion that 
>> happened at a different point in D's development when the 
>> language had different needs.
>>
>> Thank you.
>
> I like the idea to manipulate paths trough an object. API that 
> taking path as parameter as better typed than with string. It's 
> really usefull for file loaders, it's affirm the method will do 
> path related operation and expect a particular string format.
>
> Some methods seems miss like completeBaseName and 
> completeSuffix.
> You can take a look to : Qt API
> http://qt-project.org/doc/qt-4.8/qfileinfo.html
>
> The bad thing with the Qt API it's we can't know which method 
> do a file system access, that why I prefer having 2 separated 
> ojects.
>
> It would be good to have the FileInfo object.

Having an object will also remove format normalization, with a 
string as parameter the normalization method have to always be 
called.


More information about the Digitalmars-d mailing list