From b0ed4717ea08c61d8a1d0c9205cedff3e33805e3 Mon Sep 17 00:00:00 2001 From: Lars Kanis Date: Sun, 7 May 2023 21:14:36 +0200 Subject: Add documentation to new query methods of commit e987ab50366a4b08617a20568eabdaa1fb761317 --- lib/ffi/function.rb | 10 ++++++++++ lib/ffi/library.rb | 11 +++++++++++ lib/ffi/variadic.rb | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/lib/ffi/function.rb b/lib/ffi/function.rb index 6fff6ae..b4469be 100644 --- a/lib/ffi/function.rb +++ b/lib/ffi/function.rb @@ -32,10 +32,20 @@ module FFI class Function # Only MRI allows function type queries if private_method_defined?(:type) + # Retrieve the return type of the function + # + # This method returns FFI type returned by the function. + # + # @return [FFI::Type] def return_type type.return_type end + # Retrieve Array of parameter types + # + # This method returns an Array of FFI types accepted as function parameters. + # + # @return [Array] def param_types type.param_types end diff --git a/lib/ffi/library.rb b/lib/ffi/library.rb index 8af457d..9394902 100644 --- a/lib/ffi/library.rb +++ b/lib/ffi/library.rb @@ -542,10 +542,21 @@ module FFI end || FFI.find_type(t) end + # Retrieve all attached functions and their function signature + # + # This method returns a Hash of method names of attached functions connected by #attach_function and the corresponding function type. + # The function type responds to #return_type and #param_types which return the FFI types of the function signature. + # + # @return [Hash< Symbol => [FFI::Function, FFI::VariadicInvoker] >] def attached_functions @ffi_functions || {} end + # Retrieve all attached variables and their type + # + # This method returns a Hash of variable names and the corresponding type or variables connected by #attach_variable . + # + # @return [Hash< Symbol => ffi_type >] def attached_variables ( (@ffi_gsvars || {}).map do |name, gvar| diff --git a/lib/ffi/variadic.rb b/lib/ffi/variadic.rb index 246b52f..389c53c 100644 --- a/lib/ffi/variadic.rb +++ b/lib/ffi/variadic.rb @@ -67,6 +67,11 @@ module FFI invoker end + # Retrieve Array of parameter types + # + # This method returns an Array of FFI types accepted as function parameters. + # + # @return [Array] def param_types [*@fixed, Type::Builtin::VARARGS] end -- cgit v1.2.1