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