pub fn readSliceShort(r: *Reader, buffer: []u8) ShortError!usize r: *Readerbuffer: []u8ReadFailedSee the Reader implementation for detailed diagnostics.
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699pub fn readSliceShort(r: *Reader, buffer: []u8) ShortError!usize {
const contents = r.buffer[r.seek..r.end];
const copy_len = @min(buffer.len, contents.len);
@memcpy(buffer[0..copy_len], contents[0..copy_len]);
r.seek += copy_len;
if (buffer.len - copy_len == 0) {
@branchHint(.likely);
return buffer.len;
}
var i: usize = copy_len;
var data: [1][]u8 = undefined;
while (true) {
data[0] = buffer[i..];
i += readVec(r, &data) catch |err| switch (err) {
error.EndOfStream => return i,
error.ReadFailed => |e| return e,
};
if (buffer.len - i == 0) return buffer.len;
}
}
Fill
bufferwith the nextbuffer.lenbytes from the stream, advancing the seek position.Invalidates previously returned values from
peek.Returns the number of bytes read, which is less than
buffer.lenif and only if the stream reached the end.See also:
readSliceAll