On Fri, 16 May 2014 18:36:02 -0400, Vlad <[email protected]> wrote:
On Friday, 16 May 2014 at 21:35:04 UTC, Steven Schveighoffer wrote:
On Fri, 16 May 2014 16:57:41 -0400, Vlad <[email protected]> wrote:
Q: Is anything like this already in use somewhere in the standard
library or a project you know?
There is an effort by myself and Dmitry Olshansky to create a stream
API that looks like a range. I am way behind on getting it to work, but
I have something that compiles.
The effort is to replace the underlying mechanism for std.stdio
(optionally), and to replace std.stream
Q2: Or do you have any pointers for what the smallest API would be for
a string-like range class?
I think Dmitry has a pretty good API. I will hopefully be posting my
prototype soon. I hate to say wait for it, because I have been very
lousy at getting things finished lately. But I want to have something
to show before the conference.
The code I have will support all encodings, and provide a range API
that works with dchar-like ranges. The idea is to be able to make code
that works with both arrays and streams seamlessly.
And bonus:
Q3: any uses of such a string-ish range in other standard library
methods that you can think of and could be contributed to? e.g.
suppose this doesn't exist and I / we come up with a proposal of
minimal API to consume a string from left to right.
I hate for you to duplicate efforts, hold off until we get something
workable. Then we can discuss the API.
Dmitry's message is here:
http://forum.dlang.org/post/[email protected]
My updates have not been posted yet to github, I don't want to post
half-baked code yet. Stay tuned.
-Steve
Just to make one thing clear: would this future module work with e.g.
the ubyte[] chunks I receive from curl?
Most likely. I would expect a curl-based stream to fit right in, it's just
passing in bytes. One piece that I haven't quite fleshed out is how to
drive the process. In some cases, you are pulling data from the source
(traditional stream-based I/O), in other cases, something else is pushing
the data (CURL). We need to handle both seamlessly. I admit I have never
looked at D's curl package, just used it via C/C++.
p.s.
Is this the talk? http://dconf.org/2014/talks/olshansky.html
That is Dmitry's talk, from the same guy. But I think this is not about
his I/O ideas, but his excellent std.regex package.
-Steve