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 }