From 13953fe93aae0c8105846dba09ed8cc1ec148d0b Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 14 Sep 2026 15:35:53 -0700 Subject: [PATCH] RingBuffer: modernize the decls --- src/RingBuffer.zig | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/RingBuffer.zig b/src/RingBuffer.zig index 1e1f414903ea4e3624ce96ba8fa9298582ee6ee5..d643014afb7348e1c35c83d766af13194ea20a1f 100644 --- a/src/RingBuffer.zig +++ b/src/RingBuffer.zig @@ -4,12 +4,17 @@ const extras = @import("./lib.zig"); pub fn RingBuffer(comptime T: type, comptime capacity: usize) type { return struct { - items: [capacity]T = undefined, - len: usize = 0, + items: [capacity]T, + len: usize, comptime capacity: usize = capacity, const Self = @This(); + pub const empty: Self = .{ + .items = undefined, + .len = 0, + }; + pub fn append(self: *Self, new_item: T) void { if (self.len == self.capacity) { 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 { self.items[self.len] = new_item; self.len += 1; } + + pub fn slice(self: *Self) []T { + return self.items[0..self.len]; + } + + pub fn rest(self: *Self) []T { + return self.items[self.len..]; + } }; } -- 2.54.0