use std::ptr;
use super::prelude::*;
#[repr(C)]
#[derive(Clone, Copy)]
pub struct RBasic {
pub flags: VALUE,
pub klass: VALUE,
}
impl RBasic {
#[inline]
pub fn volatile_flags(&self) -> VALUE {
unsafe { ptr::read_volatile(&self.flags) }
}
}
extern "C" {
pub fn rb_eql(obj1: VALUE, obj2: VALUE) -> c_int;
pub fn rb_funcallv(recv: VALUE, mid: ID, argc: c_int, argv: *const VALUE) -> VALUE;
pub fn rb_funcallv_public(recv: VALUE, mid: ID, argc: c_int, argv: *const VALUE) -> VALUE;
pub fn rb_inspect(obj: VALUE) -> VALUE;
pub fn rb_obj_as_string(obj: VALUE) -> VALUE;
pub fn rb_obj_class(obj: VALUE) -> VALUE;
pub fn rb_obj_id(obj: VALUE) -> VALUE;
pub fn rb_obj_freeze(obj: VALUE) -> VALUE;
pub fn rb_obj_frozen_p(obj: VALUE) -> VALUE;
pub fn rb_singleton_class(obj: VALUE) -> VALUE;
pub fn rb_obj_instance_eval(argc: c_int, argv: *const VALUE, this: VALUE) -> VALUE;
}