summaryrefslogtreecommitdiff
path: root/src/Watcher.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Watcher.zig')
-rw-r--r--src/Watcher.zig62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/Watcher.zig b/src/Watcher.zig
deleted file mode 100644
index 4a0a7c3..0000000
--- a/src/Watcher.zig
+++ /dev/null
@@ -1,62 +0,0 @@
-const std = @import("std");
-const c = @import("c");
-const zpy = @import("root.zig");
-
-const Self = @This();
-
-id: c_int,
-
-pub const Event = enum(u32) {
- added = c.PyDict_EVENT_ADDED,
- modified = c.PyDict_EVENT_MODIFIED,
- deleted = c.PyDict_EVENT_DELETED,
- cloned = c.PyDict_EVENT_CLONED,
- cleared = c.PyDict_EVENT_CLEARED,
- deallocated = c.PyDict_EVENT_DEALLOCATED,
-};
-
-pub const Callback = fn (Event, *zpy.Dict, *zpy.Object, *zpy.Object) error{Exception}!void;
-
-pub fn add(callback: Callback) !Self {
- const wrapper = struct {
- pub fn wrapper(
- event: c_uint,
- dict: [*c]c.PyObject,
- key: [*c]c.PyObject,
- value: [*c]c.PyObject,
- ) callconv(.c) c_int {
- return if (std.meta.isError(callback(
- @enumFromInt(event),
- @ptrCast(dict),
- @ptrCast(key),
- @ptrCast(value),
- ))) -1 else 0;
- }
- }.wrapper;
-
- const result = c.PyDict_AddWatcher(&wrapper);
-
- if (result == -1) {
- return error.Exception;
- }
-
- return .{ .id = result };
-}
-
-pub fn clear(self: Self) !void {
- if (c.PyDict_Clear(self.id) == -1) {
- return error.Exception;
- }
-}
-
-pub fn watch(self: Self, dict: *zpy.Dict) !void {
- if (c.PyDict_Watch(self.id, @ptrCast(dict)) == -1) {
- return error.Exception;
- }
-}
-
-pub fn unwatch(self: Self, dict: *zpy.Dict) !void {
- if (c.PyDict_Unwatch(self.id, @ptrCast(dict)) == -1) {
- return error.Exception;
- }
-}