Sha256: 44dc42ddccf4b2d999e5ffb1bb59929bf8b2040604985d7283298e8fa0d5d827

Contents?: true

Size: 454 Bytes

Versions: 9

Compression:

Stored size: 454 Bytes

Contents

# frozen_string_literal: true
module GLib
  # Common methods for GLib::Array and GLib::PtrArray
  module ArrayMethods
    # Re-implementation of the g_array_index and g_ptr_array_index macros
    def index(idx)
      if idx >= length || idx < 0
        raise IndexError, "Index #{idx} outside of bounds 0..#{length - 1}"
      end
      ptr = GirFFI::InOutPointer.new element_type, data_ptr + idx * element_size
      ptr.to_ruby_value
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gir_ffi-0.11.1 lib/ffi-glib/array_methods.rb
gir_ffi-0.11.0 lib/ffi-glib/array_methods.rb
gir_ffi-0.10.2 lib/ffi-glib/array_methods.rb
gir_ffi-0.10.1 lib/ffi-glib/array_methods.rb
gir_ffi-0.10.0 lib/ffi-glib/array_methods.rb
gir_ffi-0.10.0.pre1 lib/ffi-glib/array_methods.rb
gir_ffi-0.9.5 lib/ffi-glib/array_methods.rb
gir_ffi-0.9.4 lib/ffi-glib/array_methods.rb
gir_ffi-0.9.3 lib/ffi-glib/array_methods.rb