Spec-Zone.ru › Ruby 3.1

класс Fiddle::StructArray

Родитель:
Массив

Обёртка для массивов внутри структуры

Публичные Классовые Методы

new(ptr, type, initial_values) Показать исходный код
# 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
Вызывает метод суперкласса Array::new

Публичные Экземплярные Методы

[]=(index, value) Показать исходный код
# 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
Вызывает метод суперкласса Array#[]=
to_ptr() Показать исходный код
# File ext/fiddle/lib/fiddle/struct.rb, line 153
def to_ptr
  @ptr
end

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API