A poolable string builder (aka string buffer) for Zig
0

Configure Feed

Select the types of activity you want to include in your feed.

support latest zig (non-mutable variables MUST be const)

Karl Seguin (Nov 21, 2023, 1:45 PM +0800) 56e49312 c9eeeff7

+6 -6
+1 -1
src/buffer.zig
··· 36 36 37 37 pub fn copy(self: View, allocator: Allocator) ![]u8 { 38 38 const pos = self.pos; 39 - var c = try allocator.alloc(u8, pos); 39 + const c = try allocator.alloc(u8, pos); 40 40 @memcpy(c, self.buf[0..pos]); 41 41 return c; 42 42 }
+5 -5
src/pool.zig
··· 17 17 const buffers = try allocator.alloc(*Buffer, pool_size); 18 18 19 19 for (0..pool_size) |i| { 20 - var sb = try allocator.create(Buffer); 20 + const sb = try allocator.create(Buffer); 21 21 sb.* = try Buffer.init(allocator, buffer_size); 22 22 buffers[i] = sb; 23 23 } ··· 91 91 var p = try Pool.init(t.allocator, 2, 100); 92 92 defer p.deinit(); 93 93 94 - var sb1a = p.acquire() catch unreachable; 95 - var sb2a = p.acquire() catch unreachable; 96 - var sb3a = p.acquire() catch unreachable; // this should be dynamically generated 94 + const sb1a = p.acquire() catch unreachable; 95 + const sb2a = p.acquire() catch unreachable; 96 + const sb3a = p.acquire() catch unreachable; // this should be dynamically generated 97 97 98 98 try t.expectEqual(false, sb1a == sb2a); 99 99 try t.expectEqual(false, sb2a == sb3a); 100 100 101 101 p.release(sb1a); 102 102 103 - var sb1b = p.acquire() catch unreachable; 103 + const sb1b = p.acquire() catch unreachable; 104 104 try t.expectEqual(true, sb1a == sb1b); 105 105 106 106 p.release(sb3a);