Class: FFI::Type::Mapped
Constant Summary
Constants inherited from FFI::Type
Instance Method Summary collapse
- #from_native(*args) ⇒ Object
- #initialize(converter) ⇒ self constructor
-
#native_type ⇒ Type
Get native type of mapped type.
- #to_native(*args) ⇒ Object
-
#native_type ⇒ Type
Get native type of mapped type.
Methods inherited from FFI::Type
Constructor Details
#initialize(converter) ⇒ self
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'ext/ffi_c/MappedType.c', line 68
static VALUE
mapped_initialize(VALUE self, VALUE rbConverter)
{
MappedType* m = NULL;
if (!rb_respond_to(rbConverter, id_native_type)) {
rb_raise(rb_eNoMethodError, "native_type method not implemented");
}
if (!rb_respond_to(rbConverter, id_to_native)) {
rb_raise(rb_eNoMethodError, "to_native method not implemented");
}
if (!rb_respond_to(rbConverter, id_from_native)) {
rb_raise(rb_eNoMethodError, "from_native method not implemented");
}
Data_Get_Struct(self, MappedType, m);
m->rbType = rb_funcall2(rbConverter, id_native_type, 0, NULL);
if (!(rb_obj_is_kind_of(m->rbType, rbffi_TypeClass))) {
rb_raise(rb_eTypeError, "native_type did not return instance of FFI::Type");
}
m->rbConverter = rbConverter;
Data_Get_Struct(m->rbType, Type, m->type);
m->base.ffiType = m->type->ffiType;
return self;
}
|
Instance Method Details
#from_native(*args) ⇒ Object
137 138 139 140 141 142 143 144 145 |
# File 'ext/ffi_c/MappedType.c', line 137
static VALUE
mapped_from_native(int argc, VALUE* argv, VALUE self)
{
MappedType*m = NULL;
Data_Get_Struct(self, MappedType, m);
return rb_funcall2(m->rbConverter, id_from_native, argc, argv);
}
|
#native_type ⇒ Type
Get native type of mapped type.
110 111 112 113 114 115 116 117 |
# File 'ext/ffi_c/MappedType.c', line 110
static VALUE
mapped_native_type(VALUE self)
{
MappedType*m = NULL;
Data_Get_Struct(self, MappedType, m);
return m->rbType;
}
|
#to_native(*args) ⇒ Object
123 124 125 126 127 128 129 130 131 |
# File 'ext/ffi_c/MappedType.c', line 123
static VALUE
mapped_to_native(int argc, VALUE* argv, VALUE self)
{
MappedType*m = NULL;
Data_Get_Struct(self, MappedType, m);
return rb_funcall2(m->rbConverter, id_to_native, argc, argv);
}
|
#native_type ⇒ Type
Get native type of mapped type.
110 111 112 113 114 115 116 117 |
# File 'ext/ffi_c/MappedType.c', line 110
static VALUE
mapped_native_type(VALUE self)
{
MappedType*m = NULL;
Data_Get_Struct(self, MappedType, m);
return m->rbType;
}
|