summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs39
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs b/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs
new file mode 100644
index 0000000..94a23c2
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.4-arm64-darwin/sig/ffi/function.rbs
@@ -0,0 +1,39 @@
+module FFI
+ interface _Function
+ # TODO: leads to a endless recursion when used with -rrbs/test/setup
+ # def attach: (Module mod, String name) -> self
+ def call: (*untyped args) -> untyped
+ def param_types: () -> Array[Type]
+ def return_type: () -> Type
+ end
+
+ class Function < Pointer
+ include _Function
+ # ?blocking: boolish?, ?convention: Library::convention?, ?enums: Enums?
+ def initialize:
+ (
+ ffi_type return_type, Array[ffi_type] param_types,
+ ?Hash[Symbol, untyped] options
+ ) { (*untyped) -> untyped } -> self
+ | (
+ ffi_type return_type, Array[ffi_type] param_types, Proc | Pointer proc,
+ ?Hash[Symbol, untyped] options
+ ) -> self
+
+ def autorelease?: ...
+ alias autorelease autorelease?
+ def autorelease=: ...
+ def free: () -> self
+ end
+
+ class VariadicInvoker
+ include _Function
+ def initialize:
+ (
+ Pointer function, Array[ffi_type] parameter_types, ffi_type return_type,
+ Hash[Symbol, untyped] options #TODO
+ ) -> void
+
+ def invoke: (Array[Type] parameter_types, Array[untyped] parameter_values) -> untyped
+ end
+end