class Fiddle::StructArray
Wrapper for arrays within a struct
Public Class Methods
new(ptr, type, initial_values)
click to toggle source
Calls superclass method
Array::new
# File ext/fiddle/lib/fiddle/struct.rb, line 140 def initialize(ptr, type, initial_values) @ptr = ptr @type = type @is_struct = @type.respond_to?(:entity_class) if @is_struct super(initial_values) else @size = Fiddle::PackInfo::SIZE_MAP[type] @pack_format = Fiddle::PackInfo::PACK_MAP[type] super(initial_values.collect { |v| unsigned_value(v, type) }) end end
Public Instance Methods
[]=(index, value)
click to toggle source
Calls superclass method
Array#[]=
# File ext/fiddle/lib/fiddle/struct.rb, line 157 def []=(index, value) if index < 0 || index >= size raise IndexError, 'index %d outside of array bounds 0...%d' % [index, size] end if @is_struct self[index].replace(value) else to_ptr[index * @size, @size] = [value].pack(@pack_format) super(index, value) end end
to_ptr()
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 153 def to_ptr @ptr end