// DefineClassUnder defines a new class under another class. // // This is, for example, how you would define the World class in // `Hello::World` where Hello is the "outer" class. func (m *Mrb) DefineClassUnder(name string, super *Class, outer *Class) *Class { if super == nil { super = m.ObjectClass() } if outer == nil { outer = m.ObjectClass() } return newClass(m, C.mrb_define_class_under( m.state, outer.class, C.CString(name), super.class)) }
// DefineClassUnder defines a new class under another class. // // This is, for example, how you would define the World class in // `Hello::World` where Hello is the "outer" class. func (m *Mrb) DefineClassUnder(name string, super *Class, outer *Class) *Class { if super == nil { super = m.ObjectClass() } if outer == nil { outer = m.ObjectClass() } cs := C.CString(name) defer C.free(unsafe.Pointer(cs)) return newClass(m, C.mrb_define_class_under( m.state, outer.class, cs, super.class)) }