File Coverage

blib/lib/Data/Queue/Shared.pm
Criterion Covered Total %
statement 11 16 68.7
branch 1 2 50.0
condition n/a
subroutine 4 6 66.6
pod n/a
total 16 24 66.6


line stmt bran cond sub pod time code
1             package Data::Queue::Shared;
2 11     11   1521853 use strict;
  11         20  
  11         403  
3 11     11   62 use warnings;
  11         18  
  11         2583  
4             our $VERSION = '0.01';
5              
6             require XSLoader;
7             XSLoader::load('Data::Queue::Shared', $VERSION);
8              
9             # Keyword API hint activation (requires XS::Parse::Keyword)
10             sub _enable_keywords {
11 0     0   0 my ($pkg, @kws) = @_;
12 0         0 $^H{"$pkg/$_"} = 1 for @kws;
13             }
14              
15             for my $variant (qw(Int Int32 Int16 Str)) {
16             my $lc = lc $variant;
17             my $pkg = "Data::Queue::Shared::$variant";
18             my @kws = map { "q_${lc}_$_" } qw(push pop peek size);
19 11     11   80 no strict 'refs';
  11         19  
  11         2116  
20             *{"${pkg}::import"} = sub {
21 4     4   49 my $class = shift;
22 4 50       3570 return unless $Data::Queue::Shared::HAVE_KEYWORDS;
23 0           _enable_keywords($pkg, @kws);
24             };
25             *{"${pkg}::unimport"} = sub {
26 0     0     my $class = shift;
27 0           delete $^H{"$pkg/$_"} for @kws;
28             };
29             }
30              
31             1;
32              
33             __END__