From 307183aad7d2a2d2bf8253621cd120441d487d00 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 14 Aug 2022 00:08:32 +0200 Subject: Implemented the y command requirements --- src/stack.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/stack.zig') 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" { -- cgit v1.2.3