Commit | Line | Data |
aa2d2e2c |
1 | #define NEED_newSVpvn_flags_GLOBAL |
2 | #include "mouse.h" |
3 | |
4 | MODULE = Mouse::Meta::Attribute PACKAGE = Mouse::Meta::Attribute |
5 | |
6 | PROTOTYPES: DISABLE |
7 | |
8 | BOOT: |
9 | /* readers */ |
10 | INSTALL_SIMPLE_READER(Attribute, name); |
11 | INSTALL_SIMPLE_READER(Attribute, associated_class); |
12 | INSTALL_SIMPLE_READER(Attribute, accessor); |
13 | INSTALL_SIMPLE_READER(Attribute, reader); |
14 | INSTALL_SIMPLE_READER(Attribute, writer); |
15 | INSTALL_SIMPLE_READER(Attribute, predicate); |
16 | INSTALL_SIMPLE_READER(Attribute, clearer); |
17 | INSTALL_SIMPLE_READER(Attribute, handles); |
18 | |
19 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, _is_metadata, is); |
20 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, is_required, required); |
21 | INSTALL_SIMPLE_READER(Attribute, default); |
22 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, is_lazy, lazy); |
23 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, is_lazy_build, lazy_build); |
24 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, is_weak_ref, weak_ref); |
25 | INSTALL_SIMPLE_READER(Attribute, init_arg); |
26 | INSTALL_SIMPLE_READER(Attribute, type_constraint); |
27 | INSTALL_SIMPLE_READER(Attribute, trigger); |
28 | INSTALL_SIMPLE_READER(Attribute, builder); |
29 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, should_auto_deref, auto_deref); |
30 | INSTALL_SIMPLE_READER_WITH_KEY(Attribute, should_coerce, coerce); |
31 | INSTALL_SIMPLE_READER(Attribute, documentation); |
32 | |
33 | /* predicates */ |
34 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_accessor, accessor); |
35 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_reader, reader); |
36 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_writer, writer); |
37 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_predicate, predicate); |
38 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_clearer, clearer); |
39 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_handles, handles); |
40 | |
41 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_default, default); |
42 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_type_constraint, type_constraint); |
43 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_trigger, trigger); |
44 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_builder, builder); |
45 | INSTALL_SIMPLE_PREDICATE_WITH_KEY(Attribute, has_documentation, documentation); |
46 | |
47 | newCONSTSUB(gv_stashpvs("Mouse::Meta::Attribute", TRUE), "accessor_metaclass", |
48 | newSVpvs("Mouse::Meta::Method::Accessor::XS")); |
49 | |