aboutsummaryrefslogtreecommitdiff
path: root/src/stack.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/stack.zig')
-rw-r--r--src/stack.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/stack.zig b/src/stack.zig
index e02cb20..09edd2e 100644
--- a/src/stack.zig
+++ b/src/stack.zig
@@ -147,6 +147,16 @@ pub const Stack = struct {
const emptyResult2 = [_]i64{ 4, 5 };
try std.testing.expectEqualSlices(i64, empty.data.items, emptyResult2[0..]);
}
+ pub fn yCommandPick(self: *Stack, n: usize, h: usize) !void {
+ if (n > self.data.items.len) {
+ self.data.items.len = 1;
+ self.data.items[0] = 0;
+ } else {
+ const v = self.data.items[self.data.items.len - n];
+ self.data.items.len = h;
+ try self.push(v);
+ }
+ }
};
test "all" {