fn drain(io_w: *Io.Writer, data: []const []const u8, splat: usize) Io.Writer.Error!usize io_w: *Io.Writerdata: []const []const u8splat: usize1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398 fn drain(io_w: *Io.Writer, data: []const []const u8, splat: usize) Io.Writer.Error!usize {
const w: *Writer = @alignCast(@fieldParentPtr("interface", io_w));
const io = w.io;
const buffered = io_w.buffered();
const handle = w.stream.socket.handle;
const result = io.operate(.{ .net_write = .{
.socket_handle = handle,
.header = buffered,
.data = data,
.splat = splat,
} }) catch |err| {
w.err = err;
return error.WriteFailed;
};
const n = result.net_write catch |err| {
w.err = err;
return error.WriteFailed;
};
return io_w.consume(n);
}