Function defaultReadVec [src]
Writes to Reader.buffer or data, whichever has larger capacity.
Prototype
pub fn defaultReadVec(r: *Reader, data: [][]u8) Error!usize
Parameters
r: *Reader
data: [][]u8
Possible Errors
See the Reader
implementation for detailed diagnostics.
Source
pub fn defaultReadVec(r: *Reader, data: [][]u8) Error!usize {
const first = data[0];
if (first.len >= r.buffer.len - r.end) {
var writer: Writer = .{
.buffer = first,
.end = 0,
.vtable = &.{ .drain = Writer.fixedDrain },
};
const limit: Limit = .limited(writer.buffer.len - writer.end);
return r.vtable.stream(r, &writer, limit) catch |err| switch (err) {
error.WriteFailed => unreachable,
else => |e| return e,
};
}
var writer: Writer = .{
.buffer = r.buffer,
.end = r.end,
.vtable = &.{ .drain = Writer.fixedDrain },
};
const limit: Limit = .limited(writer.buffer.len - writer.end);
r.end += r.vtable.stream(r, &writer, limit) catch |err| switch (err) {
error.WriteFailed => unreachable,
else => |e| return e,
};
return 0;
}