All of the symbols we pull from the dlopened CoreServices framework. If any of these symbols
is not present, init will close the framework and return an error.
const ResolvedSymbols = struct
const ResolvedSymbols = struct {
FSEventStreamCreate: *const fn (
allocator: CFAllocatorRef,
callback: FSEventStreamCallback,
ctx: ?*const FSEventStreamContext,
paths_to_watch: CFArrayRef,
since_when: FSEventStreamEventId,
latency: CFTimeInterval,
flags: FSEventStreamCreateFlags,
) callconv(.c) FSEventStreamRef,
FSEventStreamSetDispatchQueue: *const fn (stream: FSEventStreamRef, queue: dispatch.queue_t) callconv(.c) void,
FSEventStreamStart: *const fn (stream: FSEventStreamRef) callconv(.c) bool,
FSEventStreamStop: *const fn (stream: FSEventStreamRef) callconv(.c) void,
FSEventStreamInvalidate: *const fn (stream: FSEventStreamRef) callconv(.c) void,
FSEventStreamRelease: *const fn (stream: FSEventStreamRef) callconv(.c) void,
FSEventStreamGetLatestEventId: *const fn (stream: ConstFSEventStreamRef) callconv(.c) FSEventStreamEventId,
FSEventsGetCurrentEventId: *const fn () callconv(.c) FSEventStreamEventId,
CFRelease: *const fn (cf: *const anyopaque) callconv(.c) void,
CFArrayCreate: *const fn (
allocator: CFAllocatorRef,
values: [*]const usize,
num_values: CFIndex,
call_backs: ?*const CFArrayCallBacks,
) callconv(.c) CFArrayRef,
CFStringCreateWithCString: *const fn (
alloc: CFAllocatorRef,
c_str: [*:0]const u8,
encoding: CFStringEncoding,
) callconv(.c) CFStringRef,
CFAllocatorCreate: *const fn (allocator: CFAllocatorRef, context: *const CFAllocatorContext) callconv(.c) CFAllocatorRef,
kCFAllocatorUseContext: *const CFAllocatorRef,
}