05-Jan-2014 15:08, Jason White пишет:
On Sunday, 5 January 2014 at 09:33:46 UTC, Dmitry Olshansky wrote:
As an advice I'd suggest to drop the 'Data' part in
writeData/readData. It's obvious and adds no extra value.

You're right, but it avoids a name clash if it's composed with text
writing. "write" would be used for text and "writeData" would be used
for raw data. std.stdio.File uses the names rawRead/rawWrite to avoid
that problem (which, I suppose, are more appropriate names).


I my view text implies something like:

void write(const(char)[]);
size_t read(char[]);

And binary would be:

void write(const(ubyte)[]);
size_t read(ubyte[]);

Should not clash.

Will poke around. I like this (I mean composition):
https://github.com/jasonwhite/io/blob/master/src/io/stdio.d#L17

Yeah, the idea is to separate buffering, text, and locking operations so
that they can be composed with any other type of stream (e.g., files,
in-memory arrays, or sockets).

In-memory array IMHO better not pretend to be a stream. This kind of wrapping goes in the wrong direction (losing capabilities). Instead wrapping a stream and/or array as a buffer range proved to me to be more natural (extending capabilities).

Currently, std.stdio has all three of
those facets rolled into one.

Locking though is a province of shared and may need a bit more thought.

--
Dmitry Olshansky

Reply via email to