File Coverage

blib/lib/Switch/Plain.pm
Criterion Covered Total %
statement 22 26 84.6
branch 1 2 50.0
condition 0 3 0.0
subroutine 8 10 80.0
pod n/a
total 31 41 75.6


line stmt bran cond sub pod time code
1             package Switch::Plain;
2              
3 4     4   96118 use v5.14.0;
  4         18  
4 4     4   25 use warnings;
  4         7  
  4         208  
5              
6 4     4   23 use Carp qw(croak);
  4         13  
  4         354  
7              
8 4     4   26 use XSLoader;
  4         6  
  4         202  
9             BEGIN {
10 4     4   11 our $VERSION = '0.0501';
11 4         3680 XSLoader::load;
12             }
13              
14             my %export = (
15             sswitch => FLAG_SSWITCH,
16             nswitch => FLAG_NSWITCH,
17             );
18              
19             sub _port {
20 4     4   8 my $op = shift;
21              
22 4         5 my $class = shift;
23              
24 4         7 my @todo;
25 4         9 for my $item (@_) {
26 0   0     0 push @todo, $export{$item} || croak qq{"$item" is not exported by the $class module};
27             }
28 4 50       25 for my $item (@todo ? @todo : values %export) {
29 8         28 $op->(\$^H{+HINTK_FLAGS}, $item);
30             }
31             }
32              
33             sub import {
34 8     8   8 _port sub { ${$_[0]} |= $_[1]; }, @_;
  8     4   6163  
  4         47  
35             }
36              
37             sub unimport {
38 0     0     _port sub { ${$_[0]} &= ~$_[1]; }, @_;
  0     0      
  0            
39             }
40              
41             'ok'
42             __END__