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 › streamMode
streamMode
Reader.streamMode
pub fn streamMode (r : *Reader , w : *Io .Writer , limit : Io .Limit , mode : Mode ) Io .Reader .StreamError !usize
File
Code
pub fn streamMode (r : *Reader , w : *Io .Writer , limit : Io .Limit , mode : Mode ) Io .Reader .StreamError !usize {
switch (mode ) {
.positional , .streaming => return w .sendFile (r , limit ) catch |write_err | switch (write_err ) {
error .Unimplemented => {
r .mode = r .mode .toSimple ();
return 0 ;
},
else => |e | return e ,
},
.positional_simple => {
const dest = limit .slice (try w .writableSliceGreedy (1 ));
var data : [1 ][]u8 = .{dest };
const n = try readVecPositional (r , &data );
w .advance (n );
return n ;
},
.streaming_simple => {
const dest = limit .slice (try w .writableSliceGreedy (1 ));
var data : [1 ][]u8 = .{dest };
const n = try readVecStreaming (r , &data );
w .advance (n );
return n ;
},
.failure => return error .ReadFailed ,
}
}