File Coverage

blib/lib/Class/C3/XS.pm
Criterion Covered Total %
statement 11 11 100.0
branch 2 2 100.0
condition n/a
subroutine 6 6 100.0
pod n/a
total 19 19 100.0


line stmt bran cond sub pod time code
1             package Class::C3::XS; # git description: 0.13-10-g9f1c5a6
2             # ABSTRACT: XS speedups for Class::C3
3              
4 12     12   165411 use 5.006_000;
  12         30  
5 12     12   40 use strict;
  12         14  
  12         213  
6 12     12   34 use warnings;
  12         14  
  12         1791  
7              
8             our $VERSION = '0.14';
9              
10             #pod =pod
11             #pod
12             #pod =head1 SYNOPSIS
13             #pod
14             #pod use Class::C3; # Automatically loads Class::C3::XS
15             #pod # if it's installed locally
16             #pod
17             #pod =head1 DESCRIPTION
18             #pod
19             #pod This contains XS performance enhancers for L version
20             #pod 0.16 and higher. The main L package will use this
21             #pod package automatically if it can find it. Do not use this
22             #pod package directly, use L instead.
23             #pod
24             #pod The test suite here is not complete, although it does verify
25             #pod a few basic things. The best testing comes from running the
26             #pod L test suite *after* this module is installed.
27             #pod
28             #pod This module won't do anything for you if you're running a
29             #pod version of L older than 0.16. (It's not a
30             #pod dependency because it would be circular with the optional
31             #pod dependency from that package to this one).
32             #pod
33             #pod =cut
34              
35             require XSLoader;
36             XSLoader::load('Class::C3::XS', $VERSION);
37              
38             package # hide me from PAUSE
39             next;
40              
41       3     sub can { Class::C3::XS::_nextcan($_[0], 0) }
42              
43             sub method {
44       20     my $method = Class::C3::XS::_nextcan($_[0], 1);
45             goto &$method;
46             }
47              
48             package # hide me from PAUSE
49             maybe::next;
50              
51             sub method {
52 4     4   1924 my $method = Class::C3::XS::_nextcan($_[0], 0);
53 4 100       22 goto &$method if defined $method;
54 2         5 return;
55             }
56              
57             1;
58              
59             __END__