On Monday, 15 October 2018 at 21:48:05 UTC, Vinay Sajip wrote:
On Monday, 15 October 2018 at 19:56:22 UTC, Nicholas Wilson
wrote:
import std.file : readText;
import std.uni : byCodePoint, byGrapheme;
// or import std.utf : byCodeUnit, byChar /*utf8*/, byWchar
/*utf16*/, byDchar /*utf32*/, byUTF /*utf8(?)*/;
string a = readText("foo");
foreach(cp; a.byCodePoint)
{
// do stuff with code point 'cp'
}
Your example shows reading an entire file into memory (string a
= readText("foo")), then iterating over that. I know you can
iterate over a string; I'm interested in iterating over a
stream, which is perhaps read over a network or from another
I/O source, where you can't assume you have access to all of it
at once - just one Unicode character at a time.
Oh, sorry I missed that. Take a look at
https://github.com/schveiguy/iopipe