diff options
Diffstat (limited to 'src/Tuple.zig')
| -rw-r--r-- | src/Tuple.zig | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/Tuple.zig b/src/Tuple.zig deleted file mode 100644 index af1ec80..0000000 --- a/src/Tuple.zig +++ /dev/null @@ -1,37 +0,0 @@ - -const c = @import("c"); -const zpy = @import("root.zig"); -const conversion = zpy.conversion; - -const Self = @This(); - -object: zpy.Object, - -pub fn new(length: usize) !Self { - return .{ - .object = .fromPtr(try conversion.ptr(c.PyTuple_New(@intCast(length)))), - }; -} - -pub fn pack(values: []const zpy.Object) !Self { - var tuple = try new(values.len); - errdefer tuple.object.decref(); - - for (values, 0..) |value, index| { - try tuple.set(index, value); - } - - return tuple; -} - -pub fn size(self: *const Self) usize { - return c.PyTuple_GET_SIZE(self.object.ptr); -} - -pub fn get(self: *Self, index: usize) zpy.Error!zpy.Object { - return .fromPtr(conversion.ptr(c.PyTuple_GetItem(self.object.ptr, @intCast(index))) catch return error.IndexError); -} - -pub fn set(self: *Self, index: usize, value: zpy.Object) zpy.Error!void { - conversion.success(c.PyTuple_SetItem(self.object.ptr, @intCast(index), value.ptr)) catch return error.IndexError; -} |