Module: NDAV::FFI::MemoryPointer::MemoryViewable

Defined in:
lib/ndav/ffi.rb

Instance Method Summary collapse

Instance Method Details

#ndav_descriptorObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ndav/ffi.rb', line 30

def ndav_descriptor(**)
  shape = [size / type_size]
  format = TYPE_SIZE_TO_FORMAT[type_size]
  item_size = ITEM_SIZES[format]
  byte_size = shape.reduce(item_size, :*)
  ptr = ::Fiddle::Pointer.new(address, byte_size)

  {
    data: Fiddle::MemoryView.new(ptr).to_s,
    shape:,
    strides: ::NDAV.default_strides(shape:, item_size:),
    format:,
    byte_size:,
    readonly?: true
  }
end