| Filename | /home/doy/coding/src/Moose/blib/lib//Moose/Meta/Class/Immutable/Trait.pm |
| Statements | Executed 19 statements in 1.33ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 74µs | 92µs | Moose::Meta::Class::Immutable::Trait::BEGIN@3 |
| 1 | 1 | 1 | 40µs | 109µs | Moose::Meta::Class::Immutable::Trait::BEGIN@4 |
| 1 | 1 | 1 | 38µs | 296µs | Moose::Meta::Class::Immutable::Trait::BEGIN@13 |
| 1 | 1 | 1 | 37µs | 198µs | Moose::Meta::Class::Immutable::Trait::BEGIN@7 |
| 1 | 1 | 1 | 25µs | 25µs | Moose::Meta::Class::Immutable::Trait::BEGIN@6 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::add_role |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::calculate_all_roles |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::calculate_all_roles_with_inheritance |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::does_role |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Moose::Meta::Class::Immutable::Trait; | ||||
| 2 | |||||
| 3 | 3 | 97µs | 2 | 110µs | # spent 92µs (74+18) within Moose::Meta::Class::Immutable::Trait::BEGIN@3 which was called:
# once (74µs+18µs) by Moose::Meta::Class::BEGIN@22 at line 3 # spent 92µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@3
# spent 18µs making 1 call to strict::import |
| 4 | 3 | 108µs | 2 | 178µs | # spent 109µs (40+69) within Moose::Meta::Class::Immutable::Trait::BEGIN@4 which was called:
# once (40µs+69µs) by Moose::Meta::Class::BEGIN@22 at line 4 # spent 109µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@4
# spent 69µs making 1 call to warnings::import |
| 5 | |||||
| 6 | 3 | 94µs | 1 | 25µs | # spent 25µs within Moose::Meta::Class::Immutable::Trait::BEGIN@6 which was called:
# once (25µs+0s) by Moose::Meta::Class::BEGIN@22 at line 6 # spent 25µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@6 |
| 7 | 3 | 208µs | 2 | 358µs | # spent 198µs (37+161) within Moose::Meta::Class::Immutable::Trait::BEGIN@7 which was called:
# once (37µs+161µs) by Moose::Meta::Class::BEGIN@22 at line 7 # spent 198µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@7
# spent 160µs making 1 call to Exporter::import |
| 8 | |||||
| 9 | 1 | 4µs | our $VERSION = '1.19'; | ||
| 10 | 1 | 68µs | $VERSION = eval $VERSION; # spent 10µs executing statements in string eval | ||
| 11 | 1 | 3µs | our $AUTHORITY = 'cpan:STEVAN'; | ||
| 12 | |||||
| 13 | 3 | 736µs | 2 | 554µs | # spent 296µs (38+258) within Moose::Meta::Class::Immutable::Trait::BEGIN@13 which was called:
# once (38µs+258µs) by Moose::Meta::Class::BEGIN@22 at line 13 # spent 296µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@13
# spent 258µs making 1 call to base::import |
| 14 | |||||
| 15 | sub add_role { $_[1]->_immutable_cannot_call } | ||||
| 16 | |||||
| 17 | sub calculate_all_roles { | ||||
| 18 | my $orig = shift; | ||||
| 19 | my $self = shift; | ||||
| 20 | @{ $self->{__immutable}{calculate_all_roles} ||= [ $self->$orig ] }; | ||||
| 21 | } | ||||
| 22 | |||||
| 23 | sub calculate_all_roles_with_inheritance { | ||||
| 24 | my $orig = shift; | ||||
| 25 | my $self = shift; | ||||
| 26 | @{ $self->{__immutable}{calculate_all_roles_with_inheritance} ||= [ $self->$orig ] }; | ||||
| 27 | } | ||||
| 28 | |||||
| 29 | sub does_role { | ||||
| 30 | shift; | ||||
| 31 | my $self = shift; | ||||
| 32 | my $role = shift; | ||||
| 33 | |||||
| 34 | (defined $role) | ||||
| 35 | || $self->throw_error("You must supply a role name to look for"); | ||||
| 36 | |||||
| 37 | $self->{__immutable}{does_role} ||= { map { $_->name => 1 } $self->calculate_all_roles_with_inheritance }; | ||||
| 38 | |||||
| 39 | my $name = blessed $role ? $role->name : $role; | ||||
| 40 | |||||
| 41 | return $self->{__immutable}{does_role}{$name}; | ||||
| 42 | } | ||||
| 43 | |||||
| 44 | 1 | 11µs | 1; | ||
| 45 | |||||
| 46 | __END__ |