Module: GirFFI::TypeMap
- Defined in:
- lib/gir_ffi/type_map.rb
Overview
Maps GObject type tags and type specification to types FFI can handle.
Constant Summary collapse
- TAG_TYPE_MAP =
{ enum: :int32, flags: :int32, ghash: :pointer, glist: :pointer, gslist: :pointer, strv: :pointer, interface: :pointer, error: :pointer, ptr_array: :pointer, array: :pointer, c: GirFFI::SizedArray, utf8: :pointer, GType: gsize_type, gboolean: GirFFI::Boolean, gunichar: :uint32, gint8: :int8, guint8: :uint8, gint16: :int16, guint16: :uint16, gint: :int, guint: :uint, gint32: :int32, guint32: :uint32, gint64: :int64, guint64: :uint64, glong: :long, gulong: :ulong, gsize: gsize_type, gfloat: :float, gdouble: :double, void: :void }.freeze
Class Method Summary collapse
Class Method Details
.map_basic_type(type) ⇒ Object
45 46 47 48 |
# File 'lib/gir_ffi/type_map.rb', line 45 def self.map_basic_type(type) sym = type.to_sym TAG_TYPE_MAP[sym] || sym end |
.type_specification_to_ffi_type(type) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/gir_ffi/type_map.rb', line 50 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 |