Compare commits
No commits in common. "fb9207d22537f2940748c3e110b51be44296120e" and "25b10b6b5b23e6e44cbcaebbd107f117ed51d0d4" have entirely different histories.
fb9207d225
...
25b10b6b5b
1 changed files with 3 additions and 6 deletions
|
|
@ -39,6 +39,8 @@ pub fn writer(self: *Self, buffer: []u8) Writer {
|
||||||
.interface = .{
|
.interface = .{
|
||||||
.vtable = &.{
|
.vtable = &.{
|
||||||
.drain = drain,
|
.drain = drain,
|
||||||
|
.flush = std.Io.Writer.noopFlush,
|
||||||
|
.rebase = std.Io.Writer.failingRebase,
|
||||||
},
|
},
|
||||||
.buffer = buffer,
|
.buffer = buffer,
|
||||||
},
|
},
|
||||||
|
|
@ -47,13 +49,8 @@ pub fn writer(self: *Self, buffer: []u8) Writer {
|
||||||
|
|
||||||
fn drain(w: *std.Io.Writer, data_: []const []const u8, splat: usize) std.Io.Writer.Error!usize {
|
fn drain(w: *std.Io.Writer, data_: []const []const u8, splat: usize) std.Io.Writer.Error!usize {
|
||||||
const writer_: *Self.Writer = @alignCast(@fieldParentPtr("interface", w));
|
const writer_: *Self.Writer = @alignCast(@fieldParentPtr("interface", w));
|
||||||
|
if (data_.len == 0) return 0;
|
||||||
var written: usize = 0;
|
var written: usize = 0;
|
||||||
const buffered = w.buffered();
|
|
||||||
if (buffered.len != 0) {
|
|
||||||
const n = try writer_.subprocess.write(buffered);
|
|
||||||
written += w.consume(n);
|
|
||||||
}
|
|
||||||
if (data_.len == 0) return written;
|
|
||||||
for (data_[0 .. data_.len - 1]) |bytes| {
|
for (data_[0 .. data_.len - 1]) |bytes| {
|
||||||
written += try writer_.subprocess.write(bytes);
|
written += try writer_.subprocess.write(bytes);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue