rb_memory_view_t
VALUE obj
void *data
ssize_t byte_size
data
bool readonly
true
false
const char *format
ssize_t item_size
const rb_memory_view_item_component_t *item_desc.components
size_t item_desc.length
item_desc.components
ssize_t ndim
const ssize_t *shape
ndim
NULL
const ssize_t *strides
const ssize_t *sub_offsets
void *const private
bool rb_memory_view_available_p(VALUE obj)
obj
rb_memory_view_get
bool rb_memory_view_get(VALUE obj, rb_memory_view_t *view, int flags)
flags
view
rb_memory_view_release
bool rb_memory_view_release(rb_memory_view_t *view)
view->obj
ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err)
format
err
-1
void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices)
indices
view->ndim
view->item_desc
VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices)
rb_memory_view_get_item_pointer
rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly)
void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides)
strides
void rb_memory_view_prepare_item_desc(rb_memory_view_t *view)
item_desc
bool rb_memory_view_is_contiguous(const rb_memory_view_t *view)
bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view)
bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view)