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/ › Writer.zig › sendFilePositional
sendFilePositional
Writer.sendFilePositional
fn sendFilePositional (w : *Writer , file_reader : *Io .File .Reader , limit : Io .Limit ) Io .Writer .FileError !usize
File
Code
fn sendFilePositional (w : *Writer , file_reader : *Io .File .Reader , limit : Io .Limit ) Io .Writer .FileError !usize {
const io = w .io ;
const header = w .interface .buffered ();
const n = io .vtable .fileWriteFilePositional (io .userdata , w .file , header , file_reader , limit , w .pos ) catch |err | switch (err ) {
error .Unseekable => {
w .mode = w .mode .toStreaming ();
const pos = w .pos ;
if (pos != 0 ) {
w .pos = 0 ;
w .seekTo (@intCast (pos )) catch {
w .mode = .failure ;
return error .WriteFailed ;
};
}
return 0 ;
},
error .Canceled => {
w .err = error .Canceled ;
return error .WriteFailed ;
},
error .EndOfStream ,
error .Unimplemented ,
error .ReadFailed ,
=> |e | return e ,
else => |e | {
w .write_file_err = e ;
return error .WriteFailed ;
},
};
w .pos += n ;
return w .interface .consume (n );
}