diff --git a/lib/std/Io/Writer.zig b/lib/std/Io/Writer.zig index d79959dcb1..2b0333d4d4 100644 --- a/lib/std/Io/Writer.zig +++ b/lib/std/Io/Writer.zig @@ -114,7 +114,10 @@ pub const FileError = error{ /// Writes to `buffer` and returns `error.WriteFailed` when it is full. pub fn fixed(buffer: []u8) Writer { return .{ - .vtable = &.{ .drain = fixedDrain }, + .vtable = &.{ + .drain = fixedDrain, + .flush = noopFlush, + }, .buffer = buffer, }; } @@ -244,6 +247,15 @@ pub fn noopFlush(w: *Writer) Error!void { _ = w; } +test "fixed buffer flush" { + var buffer: [1]u8 = undefined; + var writer: std.io.Writer = .fixed(&buffer); + + try writer.writeByte(10); + try writer.flush(); + try testing.expectEqual(10, buffer[0]); +} + /// Calls `VTable.drain` but hides the last `preserve_length` bytes from the /// implementation, keeping them buffered. pub fn drainPreserve(w: *Writer, preserve_length: usize) Error!void {