18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/rufio/native_scanner_zig.rb', line 18
def load!
return @available if @loaded
@loaded = true
if File.exist?(LIB_PATH)
begin
dlload LIB_PATH
extern 'uint64_t core_async_create()'
extern 'int32_t core_async_scan(uint64_t, const char*)'
extern 'int32_t core_async_scan_fast(uint64_t, const char*, size_t)'
extern 'uint8_t core_async_get_state(uint64_t)'
extern 'void core_async_get_progress(uint64_t, void*, void*)'
extern 'void core_async_cancel(uint64_t)'
extern 'size_t core_async_get_count(uint64_t)'
extern 'size_t core_async_get_name(uint64_t, size_t, void*, size_t)'
extern 'int32_t core_async_get_attrs(uint64_t, size_t, void*, void*, void*, void*, void*)'
extern 'void core_async_destroy(uint64_t)'
extern 'char* core_async_version()'
@available = true
rescue StandardError => e
warn "Failed to load zig extension: #{e.message}" if ENV['RUFIO_DEBUG']
@available = false
end
else
@available = false
end
@available
end
|