class GirFFI::Builders::ReturnValueBuilder
Implements building post-processing statements for return values.
Public Instance Methods
has_post_conversion?()
click to toggle source
# File lib/gir_ffi/builders/return_value_builder.rb, line 19 def has_post_conversion? user_data? || needs_c_to_ruby_conversion? end
needs_c_to_ruby_conversion?()
click to toggle source
# File lib/gir_ffi/builders/return_value_builder.rb, line 23 def needs_c_to_ruby_conversion? type_info.needs_c_to_ruby_conversion_for_functions? end
post_conversion()
click to toggle source
# File lib/gir_ffi/builders/return_value_builder.rb, line 11 def post_conversion result = [] if has_post_conversion? result << "#{post_converted_name} = #{post_convertor.conversion}" end result end
Private Instance Methods
length_argument_name()
click to toggle source
# File lib/gir_ffi/builders/return_value_builder.rb, line 41 def length_argument_name length_arg&.post_converted_name end
post_convertor()
click to toggle source
# File lib/gir_ffi/builders/return_value_builder.rb, line 29 def post_convertor @post_convertor ||= if user_data? ClosureConvertor.new(capture_variable_name) else FullCToRubyConvertor.new(type_info, capture_variable_name, length_argument_name, ownership_transfer: arginfo.ownership_transfer) end end