authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-26 21:33:21 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-26 21:33:21 -07:00
log4318aeb6e24e89245917e9b011892b944c26bea3
treeb2dafeb507525d3130042508b5b2bc23d2e5ca14
parent01c643e7b070c69c402c64059af02ea881cde5f5
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

Readable added readUntilDelimiterOrEofAlloc


4 files changed, 13 insertions(+), 0 deletions(-)

AnyReadable.zig+1
......@@ -17,6 +17,7 @@ pub const readArray = R.readArray;
1717pub const readByte = R.readByte;
1818pub const readUntilDelimiterArrayList = R.readUntilDelimiterArrayList;
1919pub const readUntilDelimiterAlloc = R.readUntilDelimiterAlloc;
20pub const readUntilDelimiterOrEofAlloc = R.readUntilDelimiterOrEofAlloc;
2021pub const readUntilDelimitersBuf = R.readUntilDelimitersBuf;
2122pub const readUntilDelimitersArrayList = R.readUntilDelimitersArrayList;
2223pub const readAlloc = R.readAlloc;
buffered_reader.zig+1
......@@ -28,6 +28,7 @@ pub fn BufferedReader(comptime buffer_size: usize, comptime ReaderType: type) ty
2828 pub const readByte = R.readByte;
2929 pub const readUntilDelimiterArrayList = R.readUntilDelimiterArrayList;
3030 pub const readUntilDelimiterAlloc = R.readUntilDelimiterAlloc;
31 pub const readUntilDelimiterOrEofAlloc = R.readUntilDelimiterOrEofAlloc;
3132 pub const readUntilDelimitersBuf = R.readUntilDelimitersBuf;
3233 pub const readUntilDelimitersArrayList = R.readUntilDelimitersArrayList;
3334 pub const readAlloc = R.readAlloc;
fixed_buffer_stream.zig+1
......@@ -36,6 +36,7 @@ pub fn FixedBufferStream(comptime Buffer: type) type {
3636 pub const readByte = R.readByte;
3737 pub const readUntilDelimiterArrayList = R.readUntilDelimiterArrayList;
3838 pub const readUntilDelimiterAlloc = R.readUntilDelimiterAlloc;
39 pub const readUntilDelimiterOrEofAlloc = R.readUntilDelimiterOrEofAlloc;
3940 pub const readUntilDelimitersBuf = R.readUntilDelimitersBuf;
4041 pub const readUntilDelimitersArrayList = R.readUntilDelimitersArrayList;
4142 pub const readAlloc = R.readAlloc;
nio.zig+10
......@@ -125,6 +125,16 @@ pub fn Readable(T: type, this_kind: enum { _var, _const, _bare }) type {
125125 return list.toOwnedSlice();
126126 }
127127
128 pub fn readUntilDelimiterOrEofAlloc(self: Self, allocator: std.mem.Allocator, needle: u8, max_size: usize) !?[]u8 {
129 var list: std.ArrayList(u8) = .init(allocator);
130 defer list.deinit();
131 _ = readUntilDelimiterArrayList(self, &list, needle, max_size) catch |err| switch (err) {
132 error.EndOfStream => return null,
133 else => |e| return e,
134 };
135 return try list.toOwnedSlice();
136 }
137
128138 /// Returned slice is not suffixed by needle but buffer will contain it.
129139 pub fn readUntilDelimitersBuf(self: Self, buffer: []u8, needle: []const u8) ![]u8 {
130140 var real_len: usize = 0;