diff options
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.rbs | 39 |
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 |
