I'm a longtime fan of dlang, but haven't had a chance to do much in-depth dlang programming, and especially not range programming. Today I thought I'd use stdx.data.json to read from a text file. Since it's a somewhat large file, I thought I'd create a text range from the file and parse it that way. stdx.data.json has a great interface for lazily parsing text into JSON values, so all I had to do was turn a text file into a lazy range of UTF-8 chars that stdx.data.json's lexer could use. (In my best Clarkson voice:) How hard could it be?

Several hours later, I've finally given up and am just reading the whole file into a string. There may be a magic incantation I could use to make it work, but I can't find it, and frankly I can't see why I should need an incantation in the first place. It really ought to just be a method of std.stdio.File.

Apparently some of the complexity is caused by autodecoding (e.g. joiner returns a range of dchar from char ranges), and some of the fault may be in stdx.data.json, but either way I'm surprised that I couldn't do it. This is the kind of thing I expected to be ground level stuff.

Reply via email to