Class: Nanoarrow::CArray
- Inherits:
-
Object
- Object
- Nanoarrow::CArray
- Defined in:
- ext/nanoarrow/array.c
Instance Method Summary collapse
Instance Method Details
#assert_valid ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'ext/nanoarrow/array.c', line 49
static VALUE array_assert_valid(VALUE self)
{
array_t* array;
GetArray(self, array);
if (array->ptr == NULL)
rb_raise(rb_eRuntimeError, "CArray is NULL");
if (array->ptr->release == NULL)
rb_raise(rb_eRuntimeError, "CArray is released");
return Qnil;
}
|
#child(idx) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'ext/nanoarrow/array.c', line 72
static VALUE array_child(VALUE self, VALUE idx)
{
array_t* array;
GetArray(self, array);
array_assert_valid(self);
int64_t i = NUM2LL(idx);
if (i < 0 || i >= array->ptr->n_children)
rb_raise(rb_eIndexError, "out of range");
array_t* out_ptr;
VALUE out = TypedData_Make_Struct(cCArray, array_t, &array_data_type, out_ptr);
out_ptr->base = array->base;
out_ptr->ptr = array->ptr->children[i];
out_ptr->schema = rb_funcall(array->schema, rb_intern("child"), 1, idx);
return out;
}
|
#length ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'ext/nanoarrow/array.c', line 62
static VALUE array_length(VALUE self)
{
array_t* array;
GetArray(self, array);
array_assert_valid(self);
return LL2NUM(array->ptr->length);
}
|
#schema ⇒ Object
33 34 35 36 37 38 39 |
# File 'ext/nanoarrow/array.c', line 33
static VALUE array_schema(VALUE self)
{
array_t* array;
GetArray(self, array);
return array->schema;
}
|
#valid? ⇒ Boolean
41 42 43 44 45 46 47 |
# File 'ext/nanoarrow/array.c', line 41
static VALUE array_is_valid(VALUE self)
{
array_t* array;
GetArray(self, array);
return array->ptr != NULL && array->ptr->release != NULL ? Qtrue : Qfalse;
}
|