← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:05 2021

Filename/usr/local/lib/perl5/site_perl/Specio/Constraint/ObjectCan.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@10Specio::Constraint::ObjectCan::BEGIN@10
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@11Specio::Constraint::ObjectCan::BEGIN@11
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@12Specio::Constraint::ObjectCan::BEGIN@12
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@13Specio::Constraint::ObjectCan::BEGIN@13
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@15Specio::Constraint::ObjectCan::BEGIN@15
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@3Specio::Constraint::ObjectCan::BEGIN@3
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@4Specio::Constraint::ObjectCan::BEGIN@4
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@8Specio::Constraint::ObjectCan::BEGIN@8
0000s0sSpecio::Constraint::ObjectCan::::BEGIN@9Specio::Constraint::ObjectCan::BEGIN@9
0000s0sSpecio::Constraint::ObjectCan::::__ANON__Specio::Constraint::ObjectCan::__ANON__ (xsub)
0000s0sSpecio::Constraint::ObjectCan::::__ANON__[:38]Specio::Constraint::ObjectCan::__ANON__[:38]
0000s0sSpecio::Constraint::ObjectCan::::_allow_classesSpecio::Constraint::ObjectCan::_allow_classes
0000s0sSpecio::Constraint::ObjectCan::::_build_inline_generatorSpecio::Constraint::ObjectCan::_build_inline_generator
0000s0sSpecio::Constraint::ObjectCan::::_build_parentSpecio::Constraint::ObjectCan::_build_parent
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Specio::Constraint::ObjectCan;
2
3use strict;
4use warnings;
5
6our $VERSION = '0.47';
7
8use List::Util 1.33 ();
9use Role::Tiny::With;
10use Scalar::Util ();
11use Specio::Helpers qw( perlstring );
12use Specio::Library::Builtins;
13use Specio::OO;
14
15use Specio::Constraint::Role::CanType;
16with 'Specio::Constraint::Role::CanType';
17
18{
19 my $Object = t('Object');
20 sub _build_parent {$Object}
21}
22
23{
24 my $_inline_generator = sub {
25 my $self = shift;
26 my $val = shift;
27
28 my $methods = join ', ', map { perlstring($_) } @{ $self->methods };
29 return sprintf( <<'EOF', $val, $methods );
30(
31 do {
32 my $v = %s;
33 Scalar::Util::blessed($v)
34 && List::Util::all { $v->can($_) } %s;
35 }
36 )
37EOF
38 };
39
40 sub _build_inline_generator {$_inline_generator}
41}
42
43## no critic (Subroutines::ProhibitUnusedPrivateSubroutines)
44sub _allow_classes {0}
45## use critic
46
47__PACKAGE__->_ooify;
48
491;
50
51# ABSTRACT: A class for constraints which require an object with a set of methods
52
53__END__