module Fiddle::FFIBackend - fiddle: Ruby Standard Library Documentation

# module Fiddle::FFIBackend

### Constants

FFITypes

### Public Class Methods

to_ffi_type(fiddle_type) click to toggle source

    # File fiddle/lib/fiddle/ffi_backend.rb, line 107
    def self.to_ffi_type(fiddle_type)
      if fiddle_type.is_a?(Symbol)
        fiddle_type = Types.const_get(fiddle_type.to_s.upcase)
      end
      if !fiddle_type.is_a?(Integer) && fiddle_type.respond_to?(:to_int)
        fiddle_type = fiddle_type.to_int
      end
      ffi_type = FFITypes[fiddle_type]
      ffi_type = FFITypes[-fiddle_type] if ffi_type.nil? && fiddle_type.is_a?(Integer) && fiddle_type < 0
      raise TypeError.new("cannot convert #{fiddle_type} to ffi") unless ffi_type
      ffi_type
    end