On 2018-07-27 20:58, Russel Winder wrote:

cf. https://vibed.org/api/vibe.core.stream/InputStream.read

ubyte[256] buffer;
auto n = req.bodyReader.read(buffer, IOMode.once);

appears to work fine as long as there are 256 ubytes to read. If however the end of stream means there are less than 256 ubytes available then an exception is thrown.

At first sight this seems inconsistent with the read returning the number of ubytes read.

Or am I missing something?

The documentation says:

"The return value is guaranteed to be dst.length for IOMode.all."

"IOMode.all" is the default. I'm not sure if that's the reason.

/Jacob Carlborg