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/Int.zig | |
| parent | 956cd84ca545f1d93e2218cbbdbb39c81a46bec8 (diff) | |
Implement with ptrCast to make it more transparent.
Diffstat (limited to 'src/Int.zig')
| -rw-r--r-- | src/Int.zig | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/Int.zig b/src/Int.zig deleted file mode 100644 index bd13e99..0000000 --- a/src/Int.zig +++ /dev/null @@ -1,41 +0,0 @@ -const std = @import("std"); -const c = @import("c"); - -const zpy = @import("root.zig"); -const conversion = zpy.conversion; - -const Self = @This(); - -object: zpy.Object, - -pub fn from(value: anytype) !Self { - const T = @TypeOf(value); - const result = switch (@typeInfo(T)) { - .int => |i| switch (i.signedness) { - .signed => c.PyLong_FromLong(value), - .unsigned => c.PyLong_FromUnsignedLong(value), - }, - .comptime_int => c.PyLong_FromLong(value), - .float => c.PyLong_FromDouble(value), - else => @compileError("value must be numberic."), - }; - - return .{ - .object = .fromPtr(try conversion.ptr(result)), - }; -} - -pub fn as(self: *const Self, T: type) T { - return switch(@typeInfo(T)) { - .int => |i| switch (i) { - .signed => c.PyLong_AsLong(self.object.ptr), - .unsigned => c.PyLong_AsUnsignedLong(self.object.ptr), - }, - .float => c.PyLong_AsDouble(self.object.ptr), - else => @compileError("value must be numberic."), - }; -} - -pub fn deinit(self: *Self) void { - self.object.decref(); -} |