module GirFFI::TypeMap
Maps GObject type tags and type specification to types FFI can handle.
Constants
- FLATTENED_TAG_TO_GTYPE_MAP
- TAG_TYPE_MAP
Public Class Methods
map_basic_type(type)
click to toggle source
# File lib/gir_ffi/type_map.rb, line 46 def self.map_basic_type(type) sym = type.to_sym TAG_TYPE_MAP[sym] || sym end
type_info_to_gtype(type_info)
click to toggle source
# File lib/gir_ffi/type_map.rb, line 77 def self.type_info_to_gtype(type_info) return type_info.interface.gtype if type_info.tag == :interface FLATTENED_TAG_TO_GTYPE_MAP.fetch [type_info.flattened_tag, type_info.pointer?] end
type_specification_to_ffi_type(type)
click to toggle source
# File lib/gir_ffi/type_map.rb, line 51 def self.type_specification_to_ffi_type(type) case type when Module type.to_ffi_type when Array type[0] else map_basic_type(type) end end