File Coverage

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


line stmt bran cond sub pod time code
1             package Class::C3::XS;
2              
3 13     13   387880 use 5.006_000;
  13         54  
  13         600  
4 13     13   78 use strict;
  13         34  
  13         575  
5 13     13   71 use warnings;
  13         29  
  13         3421  
6              
7             our $VERSION = '0.13';
8              
9             =pod
10              
11             =head1 NAME
12              
13             Class::C3::XS - XS speedups for Class::C3
14              
15             =head1 SUMMARY
16              
17             use Class::C3; # Automatically loads Class::C3::XS
18             # if it's installed locally
19              
20             =head1 DESCRIPTION
21              
22             This contains XS performance enhancers for L version
23             0.16 and higher. The main L package will use this
24             package automatically if it can find it. Do not use this
25             package directly, use L instead.
26              
27             The test suite here is not complete, although it does verify
28             a few basic things. The best testing comes from running the
29             L test suite *after* this module is installed.
30              
31             This module won't do anything for you if you're running a
32             version of L older than 0.16. (It's not a
33             dependency because it would be circular with the optional
34             dep from that package to this one).
35              
36             =head1 AUTHOR
37              
38             Brandon L. Black, Eblblack@gmail.comE
39              
40             =head1 LICENSE
41              
42             This library is free software; you can redistribute it and/or modify
43             it under the same terms as Perl itself.
44              
45             =cut
46              
47             require XSLoader;
48             XSLoader::load('Class::C3::XS', $VERSION);
49              
50             $VERSION = eval $VERSION;
51              
52             package # hide me from PAUSE
53             next;
54              
55       3     sub can { Class::C3::XS::_nextcan($_[0], 0) }
56              
57             sub method {
58       20     my $method = Class::C3::XS::_nextcan($_[0], 1);
59             goto &$method;
60             }
61              
62             package # hide me from PAUSE
63             maybe::next;
64              
65             sub method {
66 4     4   1836 my $method = Class::C3::XS::_nextcan($_[0], 0);
67 4 100       28 goto &$method if defined $method;
68 2         8 return;
69             }
70              
71             1;