Add $ignore_triggers option to _initialize_object()
[gitmo/Mouse.git] / xs-src / MouseAttribute.xs
CommitLineData
aa2d2e2c 1#define NEED_newSVpvn_flags_GLOBAL
2#include "mouse.h"
3
4MODULE = Mouse::Meta::Attribute PACKAGE = Mouse::Meta::Attribute
5
6PROTOTYPES: DISABLE
7
8BOOT:
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