Module: MemoryViewTestUtils
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Defined in: | ext/-test-/memory_view/memory_view.c |
Class Method Summary
- .available?(obj) ⇒ Boolean mod_func
- .extract_item_members(str, format) mod_func
- .fill_contiguous_strides(ndim_v, item_size_v, shape_v, row_major_p) mod_func
- .get_memory_view_info(obj) mod_func
- .item_size_from_format(format) mod_func
- .parse_item_format(format) mod_func
- .ref_count_while_exporting(obj, n) mod_func
- .register(obj) mod_func
Class Method Details
.available?(obj) ⇒ Boolean
(mod_func)
# File 'ext/-test-/memory_view/memory_view.c', line 50
static VALUE memory_view_available_p(VALUE mod, VALUE obj) { return rb_memory_view_available_p(obj) ? Qtrue : Qfalse; }
.extract_item_members(str, format) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 232
static VALUE memory_view_extract_item_members(VALUE mod, VALUE str, VALUE format) { StringValue(str); StringValue(format); rb_memory_view_item_component_t *members; size_t n_members; const char *err = NULL; (void)rb_memory_view_parse_item_format(RSTRING_PTR(format), &members, &n_members, &err); if (err != NULL) { rb_raise(rb_eArgError, "Unable to parse item format"); } VALUE item = rb_memory_view_extract_item_members(RSTRING_PTR(str), members, n_members); xfree(members); return item; }
.fill_contiguous_strides(ndim_v, item_size_v, shape_v, row_major_p) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 162
static VALUE memory_view_fill_contiguous_strides(VALUE mod, VALUE ndim_v, VALUE item_size_v, VALUE shape_v, VALUE row_major_p) { ssize_t i, ndim = NUM2SSIZET(ndim_v); Check_Type(shape_v, T_ARRAY); ssize_t *shape = ALLOC_N(ssize_t, ndim); for (i = 0; i < ndim; ++i) { shape[i] = NUM2SSIZET(RARRAY_AREF(shape_v, i)); } ssize_t *strides = ALLOC_N(ssize_t, ndim); rb_memory_view_fill_contiguous_strides(ndim, NUM2SSIZET(item_size_v), shape, RTEST(row_major_p), strides); VALUE result = rb_ary_new_capa(ndim); for (i = 0; i < ndim; ++i) { rb_ary_push(result, SSIZET2NUM(strides[i])); } xfree(strides); xfree(shape); return result; }
.get_memory_view_info(obj) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 116
static VALUE memory_view_get_memory_view_info(VALUE mod, VALUE obj) { rb_memory_view_t view; if (!rb_memory_view_get(obj, &view, 0)) { return Qnil; } VALUE hash = rb_hash_new(); rb_hash_aset(hash, sym_obj, view.obj); rb_hash_aset(hash, sym_byte_size, SSIZET2NUM(view.byte_size)); rb_hash_aset(hash, sym_readonly, view.readonly ? Qtrue : Qfalse); rb_hash_aset(hash, sym_format, view.format ? rb_str_new_cstr(view.format) : Qnil); rb_hash_aset(hash, sym_item_size, SSIZET2NUM(view.item_size)); rb_hash_aset(hash, sym_ndim, SSIZET2NUM(view.ndim)); if (view.shape) { VALUE shape = rb_ary_new_capa(view.ndim); rb_hash_aset(hash, sym_shape, shape); } else { rb_hash_aset(hash, sym_shape, Qnil); } if (view.strides) { VALUE strides = rb_ary_new_capa(view.ndim); rb_hash_aset(hash, sym_strides, strides); } else { rb_hash_aset(hash, sym_strides, Qnil); } if (view.sub_offsets) { VALUE sub_offsets = rb_ary_new_capa(view.ndim); rb_hash_aset(hash, sym_sub_offsets, sub_offsets); } else { rb_hash_aset(hash, sym_sub_offsets, Qnil); } rb_memory_view_release(&view); return hash; }
.item_size_from_format(format) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 62
static VALUE memory_view_item_size_from_format(VALUE mod, VALUE format) { const char *c_str = NULL; if (!NIL_P(format)) c_str = StringValueCStr(format); const char *err = NULL; ssize_t item_size = rb_memory_view_item_size_from_format(c_str, &err); if (!err) return rb_assoc_new(SSIZET2NUM(item_size), Qnil); else return rb_assoc_new(SSIZET2NUM(item_size), rb_str_new_cstr(err)); }
.parse_item_format(format) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 76
static VALUE memory_view_parse_item_format(VALUE mod, VALUE format) { const char *c_str = NULL; if (!NIL_P(format)) c_str = StringValueCStr(format); const char *err = NULL; rb_memory_view_item_component_t *members; size_t n_members; ssize_t item_size = rb_memory_view_parse_item_format(c_str, &members, &n_members, &err); VALUE result = rb_ary_new_capa(3); rb_ary_push(result, SSIZET2NUM(item_size)); if (!err) { VALUE ary = rb_ary_new_capa((long)n_members); size_t i; for (i = 0; i < n_members; ++i) { VALUE member = rb_hash_new(); rb_hash_aset(member, sym_format, rb_str_new(&members[i].format, 1)); rb_hash_aset(member, sym_native_size_p, members[i].native_size_p ? Qtrue : Qfalse); rb_hash_aset(member, sym_endianness, members[i].little_endian_p ? sym_little_endian : sym_big_endian); rb_hash_aset(member, sym_offset, SSIZET2NUM(members[i].offset)); rb_hash_aset(member, sym_size, SSIZET2NUM(members[i].size)); rb_hash_aset(member, sym_repeat, SSIZET2NUM(members[i].repeat)); rb_ary_push(ary, member); } xfree(members); rb_ary_push(result, ary); rb_ary_push(result, Qnil); } else { rb_ary_push(result, Qnil); // members rb_ary_push(result, rb_str_new_cstr(err)); } return result; }
.ref_count_while_exporting(obj, n) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 225
static VALUE memory_view_ref_count_while_exporting(VALUE mod, VALUE obj, VALUE n) { Check_Type(n, T_FIXNUM); return memory_view_ref_count_while_exporting_i(obj, FIX2LONG(n)); }
.register(obj) (mod_func)
[ GitHub ]# File 'ext/-test-/memory_view/memory_view.c', line 56
static VALUE memory_view_register(VALUE mod, VALUE obj) { return rb_memory_view_register(obj, &exportable_string_memory_view_entry) ? Qtrue : Qfalse; }