authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-09-14 15:35:53-07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-09-14 15:35:53-07:00
log13953fe93aae0c8105846dba09ed8cc1ec148d0b
tree137c5bb3a3264b50a923b30f3e81a935883494e6
parentfeae209ba5cbc9b92a240f2e8e531c1b913bef3f
signature Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

RingBuffer: modernize the decls


1 files changed, 15 insertions(+), 2 deletions(-)

src/RingBuffer.zig+15-2
......@@ -4,12 +4,17 @@ const extras = @import("./lib.zig");
44
55pub fn RingBuffer(comptime T: type, comptime capacity: usize) type {
66 return struct {
7 items: [capacity]T = undefined,
8 len: usize = 0,
7 items: [capacity]T,
8 len: usize,
99 comptime capacity: usize = capacity,
1010
1111 const Self = @This();
1212
13 pub const empty: Self = .{
14 .items = undefined,
15 .len = 0,
16 };
17
1318 pub fn append(self: *Self, new_item: T) void {
1419 if (self.len == self.capacity) {
1520 for (1..self.len) |i| self.items[i - 1] = self.items[i];
......@@ -18,6 +23,14 @@ pub fn RingBuffer(comptime T: type, comptime capacity: usize) type {
1823 self.items[self.len] = new_item;
1924 self.len += 1;
2025 }
26
27 pub fn slice(self: *Self) []T {
28 return self.items[0..self.len];
29 }
30
31 pub fn rest(self: *Self) []T {
32 return self.items[self.len..];
33 }
2134 };
2235}
2336