lib/sys/src/apple/dispatch.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2
3 pub const Data = *opaque {};
4 pub const Queue = *opaque {};
5
6 extern fn dispatch_data_create(
7 buffer: *const anyopaque,
8 size: usize,
9 queue: ?Queue,
10 destructor: ?*const anyopaque,
11 ) ?Data;
12 extern fn dispatch_release(object: *anyopaque) void;
13
14 pub fn copiedData(bytes: []const u8) ?Data {
15 if (bytes.len == 0) return null;
16 return dispatch_data_create(bytes.ptr, bytes.len, null, null);
17 }
18
19 pub fn release(data: Data) void {
20 dispatch_release(@ptrCast(data));
21 }
22
23 test "dispatch data is a nominal platform handle" {
24 try std.testing.expectEqual(@sizeOf(usize), @sizeOf(Data));
25 try std.testing.expectEqual(@sizeOf(usize), @sizeOf(Queue));
26 }