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 › drainPositional
drainPositional
Writer.drainPositional
fn drainPositional (w : *Writer , data : []const []const u8 , splat : usize ) Io .Writer .Error !usize
File
Code
fn drainPositional (w : *Writer , data : []const []const u8 , splat : usize ) Io .Writer .Error !usize {
const io = w .io ;
const header = w .interface .buffered ();
const n = io .vtable .fileWritePositional (io .userdata , w .file , header , data , splat , 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 ;
},
else => |e | {
w .err = e ;
return error .WriteFailed ;
},
};
w .pos += n ;
return w .interface .consume (n );
}