3 static MGVTBL mop_attr_vtbl;
7 mop_attr_get_mg(pTHX_ SV* const attr){
8 if(!SvROK(attr)) croak("Invalid object");
10 return mop_mg_find(aTHX_ SvRV(attr), &mop_attr_vtbl, MOPf_DIE_ON_FAIL);
14 MODULE = Class::MOP::Attribute PACKAGE = Class::MOP::Attribute
19 INSTALL_SIMPLE_READER(Attribute, name);
20 INSTALL_SIMPLE_READER(Attribute, associated_class);
21 INSTALL_SIMPLE_READER(Attribute, associated_methods);
22 INSTALL_SIMPLE_READER(Attribute, accessor);
23 INSTALL_SIMPLE_READER(Attribute, reader);
24 INSTALL_SIMPLE_READER(Attribute, writer);
25 INSTALL_SIMPLE_READER(Attribute, predicate);
26 INSTALL_SIMPLE_READER(Attribute, clearer);
27 INSTALL_SIMPLE_READER(Attribute, builder);
28 INSTALL_SIMPLE_READER(Attribute, init_arg);
29 INSTALL_SIMPLE_READER(Attribute, initializer);
30 INSTALL_SIMPLE_READER(Attribute, insertion_order);
31 INSTALL_SIMPLE_READER(Attribute, definition_context);
33 INSTALL_SIMPLE_WRITER_WITH_KEY(Attribute, _set_insertion_order, insertion_order);
35 INSTALL_SIMPLE_PREDICATE(Attribute, accessor);
36 INSTALL_SIMPLE_PREDICATE(Attribute, reader);
37 INSTALL_SIMPLE_PREDICATE(Attribute, writer);
38 INSTALL_SIMPLE_PREDICATE(Attribute, predicate);
39 INSTALL_SIMPLE_PREDICATE(Attribute, clearer);
40 INSTALL_SIMPLE_PREDICATE(Attribute, builder);
41 INSTALL_SIMPLE_PREDICATE(Attribute, init_arg);
42 INSTALL_SIMPLE_PREDICATE(Attribute, initializer);
43 INSTALL_SIMPLE_PREDICATE(Attribute, default);
48 mop_instance_vtbl* vtbl;
50 if(!( SvROK(self) && SvOBJECT(SvRV(self)) )){
51 croak("Invalid object");
53 sv_magicext(SvRV(self), NULL, PERL_MAGIC_ext, &mop_attr_vtbl, NULL, 0);