我正在尝试从空缓冲区创建一个编写器,以便我可以为我的函数编写测试
fn writeHello(writer: std.io.Writer) !void {
try writer.print("Hello, world!\n");
}
我使用了标准库中的代码:
var buffer: [128]u8 = undefined;
var fbs = io.fixedBufferStream(&buffer);
const stream = fbs.writer();
(带有
const std = @import("std");
和 const io = std.io;
)。
但是
stream
没有 io.Writer
类型,所以我无法将其传递给我的 writeHello
函数。
我是 Zig 新手,但我有一个解决方法:
var fbuf = std.heap.FixedBufferAllocator.init(buf);
const alloc = fbuf.allocator();
var arr = std.ArrayList(u8).initCapacity(alloc, buf.len) catch unreachable;
var writer = arr.writer();