10e41fe3c2860e15066d6e67b7920bb5d36524c6
[gitmo/Class-C3-XS.git] / lib / Class / C3 / XS.pm
1 package Class::C3::XS;
2
3 use 5.006_000;
4 use strict;
5 use warnings;
6
7 our $VERSION = '0.06';
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<Class::C3> version
23 0.16 and higher.  The main L<Class::C3> package will use this
24 package automatically if it can find it.  Do not use this
25 package directly, use L<Class::C3> 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<Class::C3> 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<Class::C3> 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, E<lt>blblack@gmail.comE<gt>
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 package # hide me from PAUSE
51     next;
52
53 sub can { Class::C3::XS::_nextcan($_[0], 0) }
54
55 sub method {
56     my $method = Class::C3::XS::_nextcan($_[0], 1);
57     goto &$method;
58 }
59
60 package # hide me from PAUSE
61     maybe::next;
62
63 sub method {
64     my $method = Class::C3::XS::_nextcan($_[0], 0);
65     goto &$method if defined $method;
66     return;
67 }
68
69 1;