1use types::{c_char, c_void, size_t, Value};
2
3extern "C" {
4 pub fn rb_check_typeddata(object: Value, data_type: *const RbDataType) -> *mut c_void;
5
6 pub fn rb_data_typed_object_wrap(klass: Value,
7 data: *mut c_void,
8 data_type: *const RbDataType)
9 -> Value;
10}
11
12#[repr(C)]
13pub struct RbDataTypeFunction {
14 pub dmark: Option<extern "C" fn(*mut c_void)>,
15 pub dfree: Option<extern "C" fn(*mut c_void)>,
16 pub dsize: Option<extern "C" fn(*const c_void) -> size_t>,
17 pub reserved: [*mut c_void; 2],
18}
19
20#[repr(C)]
21pub struct RbDataType {
22 pub wrap_struct_name: *const c_char,
23 pub function: RbDataTypeFunction,
24 pub parent: *const RbDataType,
25 pub data: *mut c_void,
26 pub flags: Value,
27}