Review of Jesse Phillips's CSV Parser

Piotr Szturmaj bncrbme at jadamspam.pl
Fri Oct 28 07:09:54 PDT 2011


Jacob Carlborg wrote:
> On 2011-10-28 15:25, Piotr Szturmaj wrote:
>> dsimcha wrote:
>>> Formal review of Jesse Phillips's CSV parser module begins today and
>>> runs through November . Following that, a vote will take place for one
>>> week. Please post any comments about this library in this thread.
>>>
>>> Docs:
>>> http://nascent.freeshell.org/programming/D/doc/phobos/std_csv.html
>>>
>>> Code:
>>> https://github.com/he-the-great/phobos/tree/csv
>>
>> Could csvText!Struct(...) be generalized to also support Tuples and
>> (eventually) classes?
>
> Sounds more like a serialization library with a CSV archive type to me.
>

I suppose you misunderstood my intentions. Here's an example from the docs:

string str = "Hello,65,63.63\nWorld,123,3673.562";
struct Layout {
     string name;
     int value;
     double other;
}

auto records = csvText!Layout(str);

foreach(record; records) {
     writeln(record.name);
     writeln(record.value);
     writeln(record.other);
}

I want to occasionally write:

alias Tuple!(string, int, double) Layout; // instead of struct

It should be easy to extend, but it would be nice if we have had general 
construct in Phobos. So instead of is(Contents == struct) @ 
https://github.com/he-the-great/phobos/blob/csv/std/csv.d#L433 there 
should be isComposite!Contents and FieldTypeTuple should be generalized 
(if it isn't) to structs, classes and tuples. I don't know if Tuple as a 
struct doesn't return valid fields from FieldTypeTuple now.


More information about the Digitalmars-d mailing list