Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › Io/ › File/ › Reader.zig › readVecStreaming
readVecStreaming
Reader.readVecStreaming
fn readVecStreaming (r : *Reader , data : [][]u8 ) Io .Reader .Error !usize
File
Code
fn readVecStreaming (r : *Reader , data : [][]u8 ) Io .Reader .Error !usize {
const io = r .io ;
var iovecs_buffer : [max_buffers_len ][]u8 = undefined ;
const dest_n , const data_size = try r .interface .writableVector (&iovecs_buffer , data );
const dest = iovecs_buffer [0 ..dest_n ];
assert (dest [0 ].len > 0 );
const n = r .file .readStreaming (io , dest ) catch |err | switch (err ) {
error .EndOfStream => {
r .size = r .pos ;
return error .EndOfStream ;
},
else => |e | {
r .err = e ;
return error .ReadFailed ;
},
};
r .pos += n ;
if (n > data_size ) {
r .interface .end += n - data_size ;
return data_size ;
}
return n ;
}