Mercurial > pub > Impl
comparison lib/IMPL/Class/Member.pm @ 427:09e0086a82a7 ref20150831 tip
Merge
author | cin |
---|---|
date | Tue, 15 May 2018 00:51:33 +0300 |
parents | eed50c01e758 c27434cdd611 |
children |
comparison
equal
deleted
inserted
replaced
426:eed50c01e758 | 427:09e0086a82a7 |
---|---|
1 package IMPL::Class::Member; | |
2 use strict; | |
3 use parent qw(Exporter); | |
4 our @EXPORT = qw(&public &private &protected &_direct); | |
5 | |
6 | |
7 use IMPL::Const qw(:access); | |
8 | |
9 require IMPL::Class::MemberInfo; | |
10 | |
11 sub public($) { | |
12 my $info = shift; | |
13 $info->{access} = ACCESS_PUBLIC; | |
14 my $implementor = delete $info->{implementor}; | |
15 $implementor->Implement($info); | |
16 } | |
17 | |
18 sub private($) { | |
19 my $info = shift; | |
20 $info->{access} = ACCESS_PRIVATE; | |
21 my $implementor = delete $info->{implementor}; | |
22 $implementor->Implement($info); | |
23 } | |
24 | |
25 sub protected($) { | |
26 my $info = shift; | |
27 $info->{access} = ACCESS_PROTECTED; | |
28 my $implementor = delete $info->{implementor}; | |
29 $implementor->Implement($info); | |
30 } | |
31 | |
32 sub _direct($) { | |
33 my $info = shift; | |
34 $info->{direct} = 1; | |
35 return $info; | |
36 } | |
37 | |
38 1; |