Sha256: 56e16a677f1a797c16063ff9a5ca90767b3d55c88d97bc849e57ac9660c9cc1f
Contents?: true
Size: 1.17 KB
Versions: 4
Compression:
Stored size: 1.17 KB
Contents
require 'gir_ffi/sized_array' module GirFFI module TypeMap sz = FFI.type_size(:size_t) * 8 gtype_type = "uint#{sz}".to_sym TAG_TYPE_MAP = { :enum => :int32, :flags => :int32, :ghash => :pointer, :glist => :pointer, :gslist => :pointer, :strv => :pointer, :object => :pointer, :struct => :pointer, :error => :pointer, :ptr_array => :pointer, :array => :pointer, :c => GirFFI::SizedArray, :utf8 => :pointer, :GType => gtype_type, :gboolean => GLib::Boolean, :gunichar => :uint32, :gint8 => :int8, :guint8 => :uint8, :gint16 => :int16, :guint16 => :uint16, :gint => :int, :gint32 => :int32, :guint32 => :uint32, :gint64 => :int64, :guint64 => :uint64, :gfloat => :float, :gdouble => :double, :void => :void } def self.map_basic_type type sym = type.to_sym TAG_TYPE_MAP[sym] || sym end def self.type_specification_to_ffitype type case type when Module type.to_ffitype when Array type[0] else map_basic_type(type) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.7.3 | lib/gir_ffi/type_map.rb |
gir_ffi-0.7.2 | lib/gir_ffi/type_map.rb |
gir_ffi-0.7.1 | lib/gir_ffi/type_map.rb |
gir_ffi-0.7.0 | lib/gir_ffi/type_map.rb |