diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-31 23:05:16 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-31 23:05:16 +0200 |
| commit | 804204db7cf1e8a28defd359d17fa72949e13eff (patch) | |
| tree | 3536d961838d1a6640d1295d808768736bf2317b /src/Object.zig | |
| parent | 956cd84ca545f1d93e2218cbbdbb39c81a46bec8 (diff) | |
Implement with ptrCast to make it more transparent.
Diffstat (limited to 'src/Object.zig')
| -rw-r--r-- | src/Object.zig | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/Object.zig b/src/Object.zig deleted file mode 100644 index 018d8b3..0000000 --- a/src/Object.zig +++ /dev/null @@ -1,40 +0,0 @@ -const std = @import("std"); -const c = @import("c"); -const zpy = @import("root.zig"); - -const Self = @This(); - -ptr: *c.PyObject, - -pub fn fromPtr(ptr: *c.PyObject) Self { - return .{ .ptr = ptr }; -} - - -pub fn fromC(ptr: [*c]c.PyObject) ?Self { - return if (ptr) |p| .fromPtr(p) else null; -} - -pub fn decref(self: *Self) void { - c.Py_DecRef(self.ptr); -} - -pub fn repr(self: *const Self) zpy.Str { - return .{ .object = .fromPtr(c.PyObject_Repr(self.ptr)) }; -} - -pub fn call(self: *Self, args: zpy.Tuple, kwargs: ?zpy.Dict) zpy.Error!zpy.Object { - const kwargs_ptr: ?*c.PyObject = if (kwargs) |kw| kw.object.ptr else null; - if (c.PyObject_Call(self.ptr, args.object.ptr, kwargs_ptr)) |object| { - return .fromPtr(object); - } - - return error.Exception; -} - -pub fn format(self: *const Self, writer: *std.Io.Writer) !void { - var str = self.repr(); - defer str.deinit(); - - try writer.print("{s}", .{str.asUtf8() catch return error.WriteFailed}); -} |